private async _importFields()

in src/Common/ProcessImporter.ts [95:116]


    private async _importFields(payload: IProcessPayload): Promise<void> {
        const fieldsToCreate: WITProcessDefinitionsInterfaces.FieldModel[] = await Engine.Task(() => this._getFieldsToCreate(payload), "Get fields to be created on target process");

        if (fieldsToCreate.length > 0) {
            for (const field of fieldsToCreate) {
                try {
                    const fieldCreated = await Engine.Task(() => this._witProcessDefinitionApi.createField(field, payload.process.typeId), `Create field '${field.id}'`);
                    if (!fieldCreated) {
                        throw new ImportError(`Create field '${field.name}' failed, server returned empty object`);
                    }
                    if (fieldCreated.id !== field.id) {
                        throw new ImportError(`Create field '${field.name}' actually returned referenace name '${fieldCreated.id}' instead of anticipated '${field.id}', are you on latest VSTS?`);
                    }

                }
                catch (error) {
                    Utility.handleKnownError(error);
                    throw new ImportError(`Create field '${field.name}' failed, see log for details.`);
                }
            };
        }
    }