/ / Кодът се изпълнява ли в клиент или като партидна задача? - axapta, x ++, dynamics-ax-2009

Дали код работи в клиент или като партида работа? - axapta, x ++, dynamics-ax-2009

Има ли някакъв начин да се определи дали кодът се изпълнява в клиент или в партида работа? Мислех, че ще го използвам curUserId и проверка на това дали потребителят е този, който използваме за партидни задания, но този подход се провали, ако потребителят някога бъде променен.

Опитвам се да променя update метод на таблицата VendTable с диалогов прозорец Да / Не, когато се изпълнява в клиент, но не искам това да се случва, когато кодът работи като партида.

Някакви идеи ?

Отговори:

3 за отговор № 1

На вашия клас партида, който се простира runbasebatch, можеш да използваш this.isInBatch(), Това ще се върне вярно, ако кодът се изпълнява на партида и невярно, ако не работи в партида. След това можете да преминете това като параметър към други класове. (Бих препоръчал да го направите по този начин).

Една бележка, обаче, не трябва да показвате диалогов прозорец update метод на VendTable тъй като никога не трябва да имате взаимодействие с потребителя в дадена транзакция, която предполагам, че ще бъде така.

Ако искате да имате взаимодействие с потребителя при потребителзаписва запис на формуляр, опитайте да презапишете метода за запис на вашите данни. Това ще бъде изпълнено, когато се записва запис (вмъкнат, актуализиран). Тук можете да поискате въвеждане от потребителя. За пример, проверете формуляра за покупка (покупка ds, метод за запис), той трябва да съдържа нещо подобно (пита за копиране на полета от заглавие на ред)