• خانه
  • وبلاگ
  • نحوه ایجاد یک گردش کار سفارشی در پروژه مالی و عملیات D365

نحوه ایجاد یک گردش کار سفارشی در پروژه مالی و عملیات D365

 تاریخ انتشار :
/
  وبلاگ
نحوه ایجاد یک گردش کار سفارشی در پروژه مالی و عملیات D365


گردش‌های کاری برای ساده‌سازی فرآیندهای تجاری طراحی شده‌اند، در حالی که دستورالعمل‌های واضحی در مورد جریان اسناد و کاربرانی که باید آن را تأیید کنند، ارائه می‌دهند. از آنجایی که هیچ جریان کاری موجود برای قراردادهای خدماتی موجود نیست، ایجاد یک گردش کار سفارشی برای پروژه مالی و عملیاتی D365 بهترین گزینه در اینجا است.

این راهنما هر مرحله لازم برای ایجاد گردش کار سفارشی خود را در Dynamics 365 توضیح می دهد.

Enum را ایجاد کنید

شمارش اصلی برای تعریف وضعیت گردش کار استفاده می شود. در اینجا مراحل لازم برای تعریف آن وجود دارد:

– یک Enum جدید برای وضعیت گردش کار ایجاد کنید

نحوه ایجاد یک گردش کار سفارشی در پروژه مالی و عملیات D365

یک فیلد جدید در جدول ایجاد کنید

– در اینجا از جدول SMAAgreementTable به عنوان مثال استفاده می کنیم. پسوند جدول ایجاد کنید و Enum را به جدول بکشید.

نحوه ایجاد یک گردش کار سفارشی در پروژه مالی و عملیات D365

روش هایی را روی میز ایجاد کنید

سپس باید با استفاده از مراحل زیر متدهایی را در جدول ایجاد کنید:

  • یک کلاس جدید ایجاد کنید و نام آن را “devSMAAgreementTable_Extension” بگذارید
  • جدول SMAAgreementTable را گسترش دهید.
  • روش هایی را با نام های زیر ایجاد کنید
    • canSubmitToWorkflow
    • UpdateCustWorkflowState
  • روش canSubmitToWorkflow از زنجیره ای از دستورات برای کلمه کلیدی بعدی استفاده می کند.
public boolean canSubmitToWorkflow(str _workflowType)
    {
        boolean ret = next canSubmitToWorkflow(_workflowType);

        ret = this.RecId != 0 && this.workflowStatus == workflowstatus::Draft;

        return ret;
    }

یک پرس و جو جدید ایجاد کنید

ایجاد یک پرس و جو جدید آسان است:

  • در اینجا از کوئری SMAAgreementTableListPage استفاده می کنیم

یک دسته گردش کار ایجاد کنید

  • روی Add> New Item> Business Process and Workflow> Workflow Category کلیک کنید
  • لطفا یک نام معتبر وارد کنید
نحوه ایجاد یک گردش کار سفارشی در پروژه مالی و عملیات D365
  • خواص را مطابق شکل زیر تنظیم کنید
    • برچسب = “دسته گردش کار قرارداد خدمات”
    • Module = Salesorder (از این به بعد یک گردش کار به AR اضافه می کنیم. بنابراین گردش کار در زیر ماژول AR لیست می شود)
نحوه ایجاد یک گردش کار سفارشی در پروژه مالی و عملیات D365

یک نوع گردش کار ایجاد کنید

  • یک نوع گردش کار جدید با مراحل زیر ایجاد کنید:
    • روی Add> New Item> Business Process and Workflow> Workflow Type کلیک کنید
نحوه ایجاد یک گردش کار سفارشی در پروژه مالی و عملیات D365
نحوه ایجاد یک گردش کار سفارشی در پروژه مالی و عملیات D365
نحوه ایجاد یک گردش کار سفارشی در پروژه مالی و عملیات D365

– کلاس devServiceAgreementWFTypeEventHandler را مطابق شکل زیر ویرایش کنید

public void started(WorkflowEventArgs _workflowEventArgs)
	{
        SMAAgreementTable::UpdateCustWorkflowState(_workflowEventArgs.parmWorkflowContext().parmRecId(), workflowstatus::Pending);
	}

    public void canceled(WorkflowEventArgs _workflowEventArgs)
	{
        SMAAgreementTable::UpdateCustWorkflowState(_workflowEventArgs.parmWorkflowContext().parmRecId(), workflowstatus::Cancel);
	}

    public void completed(WorkflowEventArgs _workflowEventArgs)
	{
        SMAAgreementTable::UpdateCustWorkflowState(_workflowEventArgs.parmWorkflowContext().parmRecId(), workflowstatus::Completed);
	}

– کد زیر را در کلاس مدیر ارسال بنویسید

public static void main(Args _args)
	{
        SMAAgreementTable							ObjSMAAgreementTable;
        devServiceAgreementWFTypeSubmitManager		submitManger = new devServiceAgreementWFTypeSubmitManager();
        recId _recId =								_args.record().RecId;
        WorkflowCorrelationId						_workflowCorrelationId;
 
        workflowTypeName							_workflowTypeName = workFlowTypeStr("devServiceAgreementWFType");
        WorkflowComment								note = "";
        WorkflowSubmitDialog						workflowSubmitDialog;
        							           
        //Opens the submit to workflow dialog.
        workflowSubmitDialog = WorkflowSubmitDialog::construct(_args.caller().getActiveWorkflowConfiguration());
        workflowSubmitDialog.run();

        if (workflowSubmitDialog.parmIsClosedOK())
        {
            ObjSMAAgreementTable = _args.record();
            // Get comments from the submit to workflow dialog.
            note = workflowSubmitDialog.parmWorkflowComment();

            try
            {
                ttsbegin;
                // Activate the workflow.
                _workflowCorrelationId = Workflow::activateFromWorkflowType(_workflowTypeName, ObjSMAAgreementTable.RecId, note, NoYes::No);


                ObjSMAAgreementTable.workflowstatus = workflowstatus::Submitted;
                ObjSMAAgreementTable.update();
                ttscommit;

                // Send an Infolog message.
                info("Submitted to workflow.");
            }
            catch (Exception::Error)
            {
                error("Error on workflow activation.");
            }
        }


        _args.caller().updateWorkFlowControls();
	}

ایجاد تایید گردش کار

– برای ایجاد تأیید گردش کار، کافی است روی Add> New Item> Business Process and Workflow> Workflow Approval کلیک کنید.

نحوه ایجاد یک گردش کار سفارشی در پروژه مالی و عملیات D365
نحوه ایجاد یک گردش کار سفارشی در پروژه مالی و عملیات D365
نحوه ایجاد یک گردش کار سفارشی در پروژه مالی و عملیات D365

– کلاس مدیریت رویداد devServiceAgreementWFApprovalEventHandler را به روز کنید

public void started(WorkflowElementEventArgs _workflowElementEventArgs)
	{
        SMAAgreementTable::UpdateCustWorkflowState(_workflowElementEventArgs.parmWorkflowContext().parmRecId(),workflowstatus::Submitted);
	}

    public void canceled(WorkflowElementEventArgs _workflowElementEventArgs)
	{
        SMAAgreementTable::UpdateCustWorkflowState(_workflowElementEventArgs.parmWorkflowContext().parmRecId(),workflowstatus::Cancel);
	}

    public void completed(WorkflowElementEventArgs _workflowElementEventArgs)
	{
        SMAAgreementTable::UpdateCustWorkflowState(_workflowElementEventArgs.parmWorkflowContext().parmRecId(),workflowstatus::Approved);
	}

    public void denied(WorkflowElementEventArgs _workflowElementEventArgs)
	{
        SMAAgreementTable::UpdateCustWorkflowState(_workflowElementEventArgs.parmWorkflowContext().parmRecId(),workflowstatus::Rejected);
	}

    public void changeRequested(WorkflowElementEventArgs _workflowElementEventArgs)
	{
        SMAAgreementTable::UpdateCustWorkflowState(_workflowElementEventArgs.parmWorkflowContext().parmRecId(),workflowstatus::ChangeRequest);
	}

تأیید گردش کار را به نوع گردش کار اضافه کنید

– یک مورد برای تأیید نوع گردش کار در devServiceAgreementWFType> موارد پشتیبانی شده ایجاد کنید

نحوه ایجاد یک گردش کار سفارشی در پروژه مالی و عملیات D365

– گردش کار در فرم را فعال کنید

نحوه ایجاد یک گردش کار سفارشی در پروژه مالی و عملیات D365

– یک گردش کار ایجاد کنید

نحوه ایجاد یک گردش کار سفارشی در پروژه مالی و عملیات D365

خلاصه کردن

امیدواریم این درس ادامه داشته باشد ایجاد دینامیک فعالیت گردش کار سفارشی 365 مفید و آسان برای پیگیری بود. اگر هنوز چند سؤال در مورد فرآیند یا هر سؤال دیگری در رابطه با پروژه D365 خود دارید، همین امروز با تیم کارشناسان DEV IT ما تماس بگیرید. آنها به شما کمک خواهند کرد که بیشترین استفاده را از خود ببرید فرآیند توسعه در D365.

انتشار نحوه ایجاد یک گردش کار سفارشی در پروژه مالی و عملیات D365 برای اولین بار در مجله DEV IT ظاهر شد.