как проверить @DocumentUniqueID? - PullRequest
       1

как проверить @DocumentUniqueID?

0 голосов
/ 09 декабря 2011

У меня есть поле empID, которое должно быть уникальным ... Я написал следующий код -

mAns := @DbLookup( "" : "NoCache" ; @DbName ; "lkpEmpMasterbyEmpCode"
; empId ; "empName");

@If(empId = "";@Failure("ID cannot be empty.");@IsError(mAns); "ERROR";mAns != ""; @Failure("Employee ID already exists. Please enter a unique 
value.");@Success);

но проблема в том, что когда я пытаюсь редактировать какой-либо документ, empID снова проверяется на уникальность и выдает ошибку, что empID уже существует ... и, следовательно, я не могу редактировать любой документ ...

Я хочу иметь код, в котором я могу сравнить @DocumentUniqueID OF существующего документа с документом редактирования, и если он такой же, то empID не должен выдавать ошибку, если тот же ...

может кто-то помочь .....

1 Ответ

1 голос
/ 09 декабря 2011

Если empID никогда не изменится после создания документа, вы можете указать формулу проверки с помощью @IsNewDoc, чтобы предотвратить выполнение после сохранения документа:

@If(@IsNewDoc; 
    [validation formula here]; 
    @Success
)

Если empID может измениться после создания документа, вы можете использовать ключевое слово [RETURNDOCUMENTUNIQUEID] для @DBLookup, чтобы получить значение для сравнения:

mAns := @DbLookup( "" : "NoCache" ; @DbName ; "lkpEmpMasterbyEmpCode"
; empId ; "empName"; [RETURNDOCUMENTUNIQUEID]);

Другие параметры могут включать: 1) вычисляемое поле в документе с формулой @Text (@DocumentUniqueID), которое может быть целевым полем для вашего @DBLookup, или 2) столбец в представлении поиска с формулой столбца @Text. (@DocumentUniqueID), который может быть целью вашего поиска.

...