Thắng Trương
Bạn có muốn phản ứng với tin nhắn này? Vui lòng đăng ký diễn đàn trong một vài cú nhấp chuột hoặc đăng nhập để tiếp tục.

Go down
avatar
Admin
Admin
Tổng số bài gửi : 1562
Join date : 20/05/2018
https://thangcrm2.forumvi.com

[Action] Javascript gọi action tăng số tự động Empty [Action] Javascript gọi action tăng số tự động

Fri Jun 15, 2018 11:14 am
Trước khi bắt đầu, các bạn phải có các đoạn code sau:

C# (Mở visual studio, tạo library class, nhớ add thư viện Xrm.Sdk bằng nuget hay reference cũng được, rồi tạo 1 class add code vào)

Code:
using System;
using Microsoft.Xrm.Sdk;
using Microsoft.Xrm.Sdk.Query;

namespace ClassLibrary1
{
    public class Class1 : IPlugin
    {
        public void Execute(IServiceProvider serviceProvider)
        {
            ITracingService tracer = (ITracingService)serviceProvider.GetService(typeof(ITracingService));
            IPluginExecutionContext context = (IPluginExecutionContext)serviceProvider.GetService(typeof(IPluginExecutionContext));
            IOrganizationServiceFactory factory = (IOrganizationServiceFactory)serviceProvider.GetService(typeof(IOrganizationServiceFactory));
            IOrganizationService service = factory.CreateOrganizationService(context.UserId);
            IOrganizationService serviceAdmin = factory.CreateOrganizationService(null);

            try
            {
                EntityReference target = (EntityReference)context.InputParameters["Target"];
                Entity retrieveTarget = service.Retrieve(target.LogicalName, target.Id, new ColumnSet("fso_sotudong"));
                Entity upEntity = new Entity(target.LogicalName, target.Id);

                QueryExpression qe = new QueryExpression();
                qe.EntityName = "fso_demo";
                qe.ColumnSet = new ColumnSet("fso_sotudong");

                EntityCollection ec = service.RetrieveMultiple(qe);

                string newID = (ec.Entities.Count + 1).ToString();
                upEntity["fso_sotudong"] = newID;
                service.Update(upEntity);
               
                context.OutputParameters["output"] = target.Id.ToString();
            }

            catch (Exception e)
            {
                throw new InvalidPluginExecutionException(e.Message);
            }
         
        }
    }
}

Javascript (Có thể tạo button bằng ribbon hoặc HTML, nếu xài HTML, nhớ thêm window.parent trước Xrm)

Code:
function myFunction() {
            Process.callAction("fso_demo_action", [{
                    key: "Target",
                    type: Process.Type.EntityReference,
                    value: new Process.EntityReference(Xrm.Page.data.entity.getEntityName(), Xrm.Page.data.entity.getId())
                }],
                function (params) {
                    // Success
                    var windowOptions = {
                        openInNewWindow: true
                    };
                    Xrm.Utility.openEntityForm(Xrm.Page.data.entity.getEntityName(), params['output'], null,
                        windowOptions);
                        Xrm.Page.data.refresh();
                },
                function (e, t) {
                    // Error
                    alert(e);

                    // Write the trace log to the dev console
                    if (window.console && console.error) {
                        console.error(e + "\n" + t);
                    }
                });
        }

Tạo action:

Trong cửa sổ Solution > Process > New

[Action] Javascript gọi action tăng số tự động 1c345165191d3b84b

[Action] Javascript gọi action tăng số tự động 1b919de6195d7eb2b

Các bạn nhớ kỹ fso_demo_action.

Về Input và Output các bạn cứ điền giống trong hình, có thể có máy không cần đặt cũng chạy được.

Tạo plugin bằng Plugin Registration Tool:

Đăng ký như đăng ký Plugin

[Action] Javascript gọi action tăng số tự động 166c2dd2850582186

[Action] Javascript gọi action tăng số tự động 17819ee7ea0d6925a
avatar
Admin
Admin
Tổng số bài gửi : 1562
Join date : 20/05/2018
https://thangcrm2.forumvi.com

[Action] Javascript gọi action tăng số tự động Empty Re: [Action] Javascript gọi action tăng số tự động

Fri Jun 15, 2018 11:19 am
Nhớ tạo Key bằng chuột phải project > Properties > singing > choose ... > New > đặt tên myKey, nhớ tắt password nếu không cần thiết.
Về Đầu Trang
Permissions in this forum:
Bạn không có quyền trả lời bài viết