-->

طریقه اجرای گردش کار برای چند آیتم بوسیله ساختن Button در Ribbon

نویسنده :  

این آموزش به سه بخش  اصلی تقسیم می شود:

  1. دریافت آیتم های انتخاب شده با استفاده از جاوااسکریپت
  2. شروع کردن یک گردش کار با استفاده از جاوااسکریپت
  3. اضافه کردن یک دکمه به Ribbon

1

نحوه دریافت آیتم های انتخاب شده با استفاده از جاوااسکریپت

با استفاده از تابع getSelectedItems.  میتوانید این کار را انجام دهید:

var ctx = SP.ClientContext.get_current();

var selectedItems = SP.ListOperation.Selection.getSelectedItems(ctx);

for(var i=0; i < selectedItems.length;i++)

{

    var itemId = selectedItems[i].id;

            console.log(itemId);

}

نحوه شروع گردش کار

برای شروع یک گردش کار از کد زیر استفاده کنید:

function startWorkflow(itemID, subID) {

    var context = SP.ClientContext.get_current();

    var web = context.get_web();

    var wfServiceManager = SP.WorkflowServices.WorkflowServicesManager.newObject(context, web);

    var subscription = wfServiceManager.getWorkflowSubscriptionService().getSubscription(subID);

    context.load(subscription);

    context.executeQueryAsync(

        function(sender, args){

            console.log("Subscription load success. Attempting to start workflow.");       

            var inputParameters = {};

            wfServiceManager.getWorkflowInstanceService().startWorkflowOnListItem(subscription, itemID, inputParameters);

            context.executeQueryAsync(

                function(sender, args){ console.log("Successfully starting workflow."); },

                function(sender, args){

                    console.log("Failed to start workflow.");

                    console.log("Error: " + args.get_message() + "\n" + args.get_stackTrace());

                }

            );

        },

        function(sender,args){

            console.log("Failed to load subscription.");

            console.log("Error: " + args.get_message() + "\n" + args.get_stackTrace());

        }

    );

}

این function ساده ی جاوااسکریپت یک گردش کار برای لیست ایجاد می کند. که استراک گردش کار با SubID مشخص شده است. برای شناسایی شناسه اشتراك گردش كار خود می توانید به صفحه شروع گردش كار بروید و URL را در مرورگر خود مشاهده كنید.

“javascript:StartWorkflow4(‘6eb43e78–6e6c-486a-9147–3e3870f3a44e’, ‘19’, ‘{FA41C64B-42CD-4A3F-A1AF-CF674AB35C57}’)”

2

نحوه اضافه کردن یک دکمه به Ribbon

از طریق شیرپوینت دیزاینر به کتابخانه اسناد مورد نظرتان بروید.

3

برای اضافه کردن یک دکمه به ribbon، از Custom Action گزینه ، View Ribbon را انتخاب کنید.

4

سپس همه ی فیلدهای مورد نظر را پر کنید.

5

فیلد Navigate URL را با عبارت زیر که یک فراخوانی از تابع ما به همراه “Subscription ID” گردش کار ماست، پر می کنیم:

javascript:PlumsailDemo.WFPack.API.StartListWorkflowOnSelectedItems(“{6eb43e786e6c-486a-91473e3870f3a44e}”);

اکنون جاوااسکریپت را از قسمت ScriptEditor Web به صفحه اضافه می کنیم.

برای این کار از قسمت edit صفحه “Add a Web Part” را انتخاب کنید و از گروه “Media and Content” یک “Script Editor” به صفحه اضافه کنید.

6

از کد زیر استفاده کنید:

<script type="text/javascript">// <![CDATA[

var PlumsailDemo = PlumsailDemo || {};

PlumsailDemo.WFPack = PlumsailDemo.WFPack || {};

PlumsailDemo.WFPack.API = (function() {

   var self = this;

   self.Context = null,

   self.WFManager = null;

   SP.SOD.executeFunc('sp.js', 'SP.ClientContext' , function(){

       SP.SOD.registerSod("sp.workflowservices.js", SP.Utilities.Utility.getLayoutsPageUrl("sp.workflowservices.js"));

       SP.SOD.executeFunc("sp.workflowservices.js", 'SP.WorkflowServices.WorkflowServicesManager',

           function() {

                self.Context = SP.ClientContext.get_current();

               var web = self.Context.get_web();

               self.WFManager = SP.WorkflowServices.WorkflowServicesManager.newObject(self.Context, web);

           });

   });

   StartListWorkflowOnSelectedItems = function(subID) {

       var selectedItems = SP.ListOperation.Selection.getSelectedItems(self.Context);

       for(var i=0; i < selectedItems.length;i++)

       {

           var itemId = selectedItems[i].id;

          self.StartListWorkflow(itemId, subID);

       }

   };

   StartListWorkflow = function(itemID, subID) {

       var subscription = self.WFManager.getWorkflowSubscriptionService().getSubscription(subID);

       self.Context.load(subscription);

       self.Context.executeQueryAsync(

           function(sender, args){

               var inputParameters = {};

               self.WFManager.getWorkflowInstanceService().startWorkflowOnListItem(subscription, itemID, inputParameters);

              self.Context.executeQueryAsync(

                   function(sender, args){

                       var message = 'The workflow ' + subscription.get_name() + ' was started on item with ID ' + itemID;

                       SP.UI.Notify.addNotification(message, false);

                   },

                   function(sender, args){

                       var message = 'Failed to start workflow ' + subscription.get_name() + ' on item with ID ' + itemID;

                       SP.UI.Notify.addNotification(message, false);                

                       console.log('Failed to start workflow.');

                       console.log('Error: ' + args.get_message() + '\n' + args.get_stackTrace());

                    }

               );

           },

           function(sender,args){

               var message = 'Failed to load subscription ' + subID;

               SP.UI.Notify.addNotification(message, false);

               console.log('Failed to load subscription.');

               console.log('Error: ' + args.get_message() + '\n' + args.get_stackTrace());

           }

       );

   };

   return {

       StartListWorkflow: StartListWorkflow

       , StartListWorkflowOnSelectedItems: StartListWorkflowOnSelectedItems

   };

})();

// ]]>

طریقه اجرای گردش کار برای چند آیتم بوسیله ساختن Button در Ribbon

برترین مطالب آموزشی

یکی از قابلیت های مهم نرم افزار SharePoint ارتباط کامل با مجموعه آفیس می­باشد ...
1- ابتدا نسخه اصلی پاورفرم را که در سایت قرار داده شده است دانلود نمایید . 2- فایل تقویم
کد ذیل را درقسمت Option => Include  وارد نمایید . div.k-grid-header, div.k-grid-footer{
تغییر عرض نمایش ستون ها با کمک شیرپوینت دیزاینر و بدون کد نویسی بعد از باز کردن نمای دلخواه در
همانطور که مستحضر هستید اکشن عملیات موازی یا Parallel در صورتی تکمیل می شود که تمامی شاخه های آن
  دلیل گم کردنID  Outcome ها در Flexi task وقتی شما اکشن Flexi task را کپی می
فعالسازی Drag & Drop در Attachment فرم ساز PowerForms 1. کد زیر را درقسمت Include پاورفرم
دانلود کتاب آموزشی شیرپوینت مقدمه: شما برای سازمان خود نیاز به نرم افزاری دارید که بتواند

تماس با ما

شیرپوینت سنتر

  • آدرس: استان تهران ، خیابان بهشتی ، خیابان سهروردی شمالی ، خیابان امامی ، پلاک 8
  • شماره تماس: 09196202395 - 09358791030
  • ایمیل: info@sharepointcenter.ir

دپارتمان شیرپوینت ایران

بالا