AXForum  
Вернуться   AXForum > Microsoft Dynamics AX > DAX Blogs
All
Забыли пароль?
Зарегистрироваться Правила Справка Пользователи Сообщения за день Поиск

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 15.03.2018, 18:11   #1  
Blog bot is offline
Blog bot
Участник
 
25,475 / 846 (79) +++++++
Регистрация: 28.10.2006
axtoday: D365O mobile workspace
Источник: http://axtoday.blogspot.com/2018/03/...workspace.html
==============

Starting from platform update 4, D365O introduces the ability to create mobile workspaces which can be loaded from Microsoft Dynamics 365 Unified Operations app, which is available for Android and iOS devices.

The easiest way to learn this is to follow the video tutorials from
https://docs.microsoft.com/en-us/dyn...form-home-page

Although it looks like very easy to do, you might need to create some forms to make it easier to add the fields into the workspace. If you take a look on Accounts Payable Mobile or SCM Mobile App models, you'll see that Microsoft does that in order to build the standard mobile workspaces.

For PO approval workspace, you can see this page for information on which hotfixes that you need to install.

So with that workspace, there is a new form called PurchMobileOrdersAssignedToMe, which basically is a simple list with very few header information such as PO number, order account and name. The interesting part is there are some checkboxes to indicate if that PO record should have which workflow buttons can be enabled or not.

public boolean isMenuItemEnabled(WorkflowWorkItemTable _workItem, str _menuItemName)
{
container menuItemsContainer;
str messageText;
str instruction;

[menuItemsContainer, messageText, instruction] = SysWorkflowFormControls::getActionBarContentForWorkItem(_workItem);

return conFind(menuItemsContainer, _menuItemName) > 0;
}

public display boolean purchTableApprovalApproveEnabled(WorkflowWorkItemTable _workItem)
{
return this.isMenuItemEnabled(_workItem, menuItemActionStr(PurchTableApprovalApprove));
}

public display boolean purchTableApprovalDelegateEnabled(WorkflowWorkItemTable _workItem)
{
return this.isMenuItemEnabled(_workItem, menuItemActionStr(PurchTableApprovalDelegate));
}



These checkboxes then get used in the logic of the workspace to show and hide the action buttons. The logic .js file is like this (I put couple of comments to explain what the line does):

function main(metadataService, dataService, cacheService, $q) {
return {
appInit: function() {
metadataService.configureControl('Orders-assigned-to-me', 'PurchTableApprovalApproveEnabled', { hidden: true }); //to hide the ApproveEnabled checkbox
metadataService.configureControl('Orders-assigned-to-me', 'PurchTableApprovalDelegateEnabled', { hidden: true });
metadataService.configureControl('Orders-assigned-to-me', 'PurchTableApprovalRejectEnabled', { hidden: true });
metadataService.configureControl('Orders-assigned-to-me', 'PurchTableApprovalRequestChangeEnabled', { hidden: true });
metadataService.configureControl('Orders-assigned-to-me', 'PurchTableTaskCompleteEnabled', { hidden: true });
metadataService.configureControl('Orders-assigned-to-me', 'PurchTableTaskDelegateEnabled', { hidden: true });
metadataService.configureControl('Orders-assigned-to-me', 'PurchTableTaskRequestChangeEnabled', { hidden: true });
metadataService.configureControl('Orders-assigned-to-me', 'PurchTableTaskReturnEnabled', { hidden: true });

metadataService.hideNavigation('Select-user');

metadataService.addLink('Order-details', 'Header-accounting-distribution', 'header-accounting-distribution', 'Accounting distribution', false);
metadataService.addLink('Order-line-details', 'Line-accounting-distribution', 'line-accounting-distribution', 'Accounting distribution', false);

metadataService.configureControl('Header-accounting-distribution', 'Grid', { nonEntityProjection: true });
metadataService.configureControl('Line-accounting-distribution', 'Grid', { nonEntityProjection: true });
metadataService.configureControl('Order-details', 'LineGrid', { ListStyle: 'Card' });
},
pageInit: function (pageMetadata, params) {
if (pageMetadata.Name == 'Order-details') {

metadataService.configureAction('Approve', { visible: false }); //to hide the Approve action/button
metadataService.configureAction('Reject', { visible: false });
metadataService.configureAction('Request-change-1', { visible: false });
metadataService.configureAction('Delegate-approval', { visible: false });

metadataService.configureAction('Complete-task', { visible: false });
metadataService.configureAction('Return', { visible: false });
metadataService.configureAction('Request-change', { visible: false });
metadataService.configureAction('Delegate-task', { visible: false });

var entityContextParts = params.pageContext.split(':');
var data = dataService.getEntityData(entityContextParts[0], entityContextParts[1]);

var workflowWorkItemRecord = data.getPropertyValue('WorkflowWorkItemTable');
if (workflowWorkItemRecord)
{
var workflowWorkItemData = dataService.getEntityData("WorkflowWorkItemTable", workflowWorkItemRecord);

var approveVisible = Boolean(workflowWorkItemData.getPropertyValue('purchTableApprovalApproveEnabled') == 1);
var rejectVisible = Boolean(workflowWorkItemData.getPropertyValue('purchTableApprovalRejectEnabled') == 1);
var requestChangeVisible = Boolean(workflowWorkItemData.getPropertyValue('purchTableApprovalRequestChangeEnabled') == 1);
var delegateVisible = Boolean(workflowWorkItemData.getPropertyValue('purchTableApprovalDelegateEnabled') == 1);

var completeVisible = Boolean(workflowWorkItemData.getPropertyValue('purchTableTaskCompleteEnabled') == 1);
var returnTaskVisible = Boolean(workflowWorkItemData.getPropertyValue('purchTableTaskReturnEnabled') == 1);
var requestChangeTaskVisible = Boolean(workflowWorkItemData.getPropertyValue('purchTableTaskRequestChangeEnabled') == 1);
var delegateTaskVisible = Boolean(workflowWorkItemData.getPropertyValue('purchTableTaskDelegateEnabled') == 1);
}
else
{
var approveVisible = Boolean(data.getPropertyValue('WorkflowWorkItemTable/purchTableApprovalApproveEnabled').value == 1);
var rejectVisible = Boolean(data.getPropertyValue('WorkflowWorkItemTable/purchTableApprovalRejectEnabled').value == 1);
var requestChangeVisible = Boolean(data.getPropertyValue('WorkflowWorkItemTable/purchTableApprovalRequestChangeEnabled').value == 1);
var delegateVisible = Boolean(data.getPropertyValue('WorkflowWorkItemTable/purchTableApprovalDelegateEnabled').value == 1);

var completeVisible = Boolean(data.getPropertyValue('WorkflowWorkItemTable/purchTableTaskCompleteEnabled').value == 1);
var returnTaskVisible = Boolean(data.getPropertyValue('WorkflowWorkItemTable/purchTableTaskReturnEnabled').value == 1);
var requestChangeTaskVisible = Boolean(data.getPropertyValue('WorkflowWorkItemTable/purchTableTaskRequestChangeEnabled').value == 1);
var delegateTaskVisible = Boolean(data.getPropertyValue('WorkflowWorkItemTable/purchTableTaskDelegateEnabled').value == 1);
}

metadataService.configureAction('Approve', { visible: approveVisible });
metadataService.configureAction('Reject', { visible: rejectVisible });
metadataService.configureAction('Request-change-1', { visible: requestChangeVisible });
metadataService.configureAction('Delegate-approval', { visible: delegateVisible });

metadataService.configureAction('Complete-task', { visible: completeVisible });
metadataService.configureAction('Return', { visible: returnTaskVisible });
metadataService.configureAction('Request-change', { visible: requestChangeTaskVisible });
metadataService.configureAction('Delegate-task', { visible: delegateTaskVisible });
}
}
};
}






Источник: http://axtoday.blogspot.com/2018/03/...workspace.html
__________________
Расскажите о новых и интересных блогах по Microsoft Dynamics, напишите личное сообщение администратору.
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
organicax: Expense management mobile workspace Blog bot DAX Blogs 0 11.08.2017 02:22
organicax: Invoice approvals mobile workspace Blog bot DAX Blogs 0 10.08.2017 00:17
organicax: Sales order mobile workspace Blog bot DAX Blogs 0 09.08.2017 12:11
organicax: D365 for Operations – Creating a mobile workspace Blog bot DAX Blogs 0 07.04.2017 00:16
Gareth Tucker: Resco MobileCRM vs. CWR Mobile CRM – Microsoft CRM Mobile Showdown! Blog bot Dynamics CRM: Blogs 0 13.01.2012 17:11

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 02:12.
Powered by vBulletin® v3.8.5. Перевод: zCarot
Контактная информация, Реклама.