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

03 شهریور 1398 نویسنده :  

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

  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

735 بازدیدها
user1

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

این آموزش به سه بخش  اصلی تقسیم می شود: دریافت آیتم های انتخاب شده با استفاده از
در این مقاله جایگزین کردن فرم نینتکس را با پاورفرم توضیح خواهیم داد. این مقاله به
در این آموزش، ما در مورد چگونگی ایجاد یک وب پارت چارت سازمانی (JavaScript (jsom در
برای اینکه ارتباط شیرپوینت، Lync و Nintex را برقرار کنیم باید به صورت زیر عمل کنیم:
دانلود کتاب آموزشی شیرپوینت مقدمه: شما برای سازمان خود نیاز به نرم افزاری دارید که
یکی از قابلیت های مهم نرم افزار SharePoint ارتباط کامل با مجموعه آفیس می­باشد ...
آموزش پاورفرم - اسکریپت های کاربردی اسکریپت های مربوط به گرید   مقدار دهی
ایجاد آیتم در یک لیست با استفاده از JavaScript object model (jsom) کد مورد نظر را در یک
آموزش پاورفرم - اسکریپت های کاربردی  اسکریپت های مربوط به تاریخ برای
//courtesy of BoogieJack.com function killCopy(e){ return false } function
همانطور که مستحضر هستید اکشن عملیات موازی یا Parallel   همانطور که مستحضر

تماس با ما

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

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

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

بالا