Power Apps 学习笔记 -- Action

文章目录

    • [1. Action 简介](#1. Action 简介)
    • [2. Action 配置](#2. Action 配置)
    • [3. 待补充](#3. 待补充)

1. Action 简介

**  Action基础教程 :** Action概述

bash 复制代码
操作Action:
1. 操作Action类似于工作流Workflow,提供一些重用性的操作,允许工作流或其他Web服务端点调用(例如javascript).
2. Action 类似于c#当中的一个方法,需要其他的工作流workflow或者Web服务端调用

2. Action 配置

bash 复制代码
## power Apps 中注册流程(操作Action)
1. 设置-流程-创建流程
2. 定义操作Action 的输入以及输出

## 编写对应代码并在PluginRegistration当中注册
1. 编写代码 -- 生成签名 -- 生成程序集.dll
2. PluginRegistration当中正常完成插件注册 + 步骤Step绑定

## 通过前端js代码调用/工作流workflow调用
1. js代码调用

**  ## power Apps 中注册流程(操作Action)**

**  ## 编写对应代码并在PluginRegistration当中注册**

csharp 复制代码
using System;
using Microsoft.Xrm.Sdk;

namespace BasciPlugin {
    public class SampleAction : IPlugin {
        public void Execute(IServiceProvider serviceProvider) {
            ITracingService tracingService = (ITracingService)serviceProvider.GetService(typeof(ITracingService));
            IPluginExecutionContext context = (IPluginExecutionContext)serviceProvider.GetService(typeof(IPluginExecutionContext));
            IOrganizationServiceFactory serviceFactory = (IOrganizationServiceFactory)serviceProvider.GetService(typeof(IOrganizationServiceFactory));
            IOrganizationService service = serviceFactory.CreateOrganizationService(context.UserId);

            string param = context.InputParameters["param"].ToString();
            Entity order = new Entity("crda9_order"); // 新建一个订单
            order["crda9_reason"] = param;
            service.Create(order);

        }
    }
}

**  ## 通过js代码调用**

javascript 复制代码
var parameters = {};
parameters.param = "hello, action...";

var req = new XMLHttpRequest();
req.open("POST", Xrm.Page.context.getClientUrl() + "/api/data/v9.1/new_sample_action", true);
req.setRequestHeader("OData-MaxVersion", "4.0");
req.setRequestHeader("OData-Version", "4.0");
req.setRequestHeader("Accept", "application/json");
req.setRequestHeader("Content-Type", "application/json; charset=utf-8");
req.onreadystatechange = function() {
    if (this.readyState === 4) {
        req.onreadystatechange = null;
        if (this.status === 204) {
            //Success - No Return Data - Do Something
        } else {
            Xrm.Utility.alertDialog(this.statusText);
        }
    }
};
req.send(JSON.stringify(parameters));

3. 待补充

相关推荐
孙严Pay26 分钟前
快捷支付:高效安全的在线支付新选择
笔记·科技·计算机网络·其他·微信
じ☆冷颜〃32 分钟前
黎曼几何驱动的算法与系统设计:理论、实践与跨领域应用
笔记·python·深度学习·网络协议·算法·机器学习
想进部的张同学44 分钟前
hilinux-3599---设备学习---以及部署yolo
学习·yolo·海思
HyperAI超神经1 小时前
【vLLM 学习】Rlhf
人工智能·深度学习·学习·机器学习·vllm
数据皮皮侠AI2 小时前
上市公司股票名称相似度(1990-2025)
大数据·人工智能·笔记·区块链·能源·1024程序员节
yuhaiqun19892 小时前
学服务器训练AI模型:5步路径助力高效入门
运维·服务器·人工智能·笔记·机器学习·ai
雍凉明月夜3 小时前
深度学习网络笔记Ⅳ(Transformer + VIT)
笔记·深度学习·transformer
做cv的小昊4 小时前
【TJU】信息检索与分析课程笔记和练习(7)数据库检索—Ei
数据库·笔记·学习·全文检索
AI360labs_atyun4 小时前
上海打出“开源”国际牌!2025重磅新政
人工智能·科技·学习·ai·开源
Chris_12194 小时前
Halcon学习笔记-Day6:工业视觉高级技术应用与实战项目
笔记·学习·halcon