CRM接口开发日志

2023-11-09


前言

学习情况总结


一、Inbound WebService的创建

一个Web Service是 一个部署在网络上的业务逻辑,可以通过某种网络协议进行访问。
a) 通过WSDL【Web Service Description Language】来指定一个WS
b) 通过SOAP【Simple Object Access Protocol】来传输
c) 通过XML来存储内容
以上三个是WS的核心技术。
WSDL由发布者提供,它提供了WS的各种操作、操作的输入输出参数结构以及与WS通讯的机制。
一个WSDL文件被发布成一个XML的实例。
SOAP是一个轻量级的协议,它用于在分布式环境下进行结构化数据的交换传递。服务使用者按照一定的格式提交请求【Request】,服务提供者提供响应【Response】。
总结:通过WSDL、SOAP、XML技术来实现接口

1.对应关系

在这里插入图片描述
如上图所示:IO对应BO,IC对应BC,ICF对应BCF

在这里插入图片描述
如上图所示:WS和BS一一对应。

2.通过BS创建Inbound WebService(入栈WS)

创建IO

  1. 通过向导新建New Object->EAI->Integration Object

  2. 选择相应的Project,选择Source System为:EAI Siebel Wizard

  3. 选择BC、Include Component、Container Naming、Lower CamelCase for XML Tags
    在这里插入图片描述

  4. 不发布,取消勾选Deploy在这里插入图片描述

  5. 为需要的BC创建Key,然后创建Key Field字段(?作用)

在这里插入图片描述

创建BS

  1. 选择Class为CSSEAIDataSyncService,勾选External Use(Display Name在创建Inbound的时候选择BS的时候会用到)在这里插入图片描述

  2. 为BS创建两条User Property,
    Application Services Interface:Y
    Internal Integration Object:NGC Order Header BO【上述建立的IO名称】

  3. 创建方法和以及参数,复杂参数的类型要选择IO型,再选择刚才创建的IO。标准方法QueryById,参数要按照下图
    在这里插入图片描述

  4. 其他标准方法以及参数如下
    在这里插入图片描述
    在这里插入图片描述

在这里插入图片描述

创建Inbound WebService

  1. 浏览器中:管理-Web服务->入站Web服务,新建一条记录,命名空间填http://siebel.com/CustomUI名称是IO名

在这里插入图片描述

  1. 服务端口新建一条记录,名称是 BS名称 ,服务名称是BS的 Display Name,实施类型选 业务服务 ,地址http://localhost:8888/eai_chs/start.swe?SWEExtSource=WebService&SWEExtCmd=Execute&WSSOAP=1,联编SOAP_RPC_LITERAL

在这里插入图片描述

  1. 操作里选择创建的方法,验证类型填无,名称需要加个前缀(否则影响唯一性验证)

在这里插入图片描述

  1. 将界面拉到最上方,清除缓存,生成WSDL,打开文档自动生成器,导入刚才的WSDL,生成新WSDL

在这里插入图片描述

测试

  1. 使用SoapUI测试接口,创建Project,选择新生成的带头结构的WSDL
    在这里插入图片描述

  2. 选择需要测试的方法

在这里插入图片描述

  1. 修改endpoint为建立的Inbound WebService服务端口的地址,此处是http://localhost:8888/eai_chs/start.swe?SWEExtSource=WebService&SWEExtCmd=Execute&WSSOAP=1

在这里插入图片描述

  1. 修改XML的参数,并运行测试,头文件要填相应的账号密码

在这里插入图片描述

  1. 观察报文,200 OK代表无误,有数据传回,或者直接看返回值

在这里插入图片描述

二、Outbound WebService的调用

1.调用OA接口实例

  1. 找到要调用的BS,查找需要调用的方法和参数,找到对应的IO
    在这里插入图片描述

  2. 找到IO的IC和IC Field,记录相应字段,在代码里组合
    在这里插入图片描述

		var psIn = TheApplication().NewPropertySet();
		var psOut = TheApplication().NewPropertySet();
		//IO层
		var siebelMsg = TheApplication().NewPropertySet();
		siebelMsg.SetType("getUserIdRequest:parameters");//BS方法的参数名
		siebelMsg.SetProperty("MessageId","1");		
		siebelMsg.SetProperty("MessageType","Integration Object");
		siebelMsg.SetProperty("IntObjectName","getUserId");//IO名
		siebelMsg.SetProperty("IntObjectFormat","Siebel Hierarchical");//对应storage type

		//第一层
		//构造IC对象数组
		var ListOfgetUserId = TheApplication().NewPropertySet();	
		ListOfgetUserId.SetType("ListOfgetUserId"); 	
		
		var getUserId = TheApplication().NewPropertySet();
		getUserId.SetType("getUserId");//IC名
		getUserId.SetProperty("in0","loginid2");//参数名、参数值
		getUserId.SetProperty("in1",Login);//参数名、参数值
		
		//构造IO
		//固定步骤
		ListOfgetUserId.AddChild(getUserId);
		siebelMsg.AddChild(ListOfgetUserId);

		psIn.AddChild(siebelMsg);
		//参数准备完毕,开始调用
		bsOAWorkflow.InvokeMethod("getUserId",psIn,psOut);

三、接口日志的记录

		//接口日志对象
		var bsXML=TheApplication().GetService("EAI XML Converter");
		var psInxml=TheApplication().NewPropertySet();
		var psOutxml=TheApplication().NewPropertySet();
		var bsSys=TheApplication().GetService("NGC System Service");
		var sLogId = "";
				
		//接口入参日志
		bsXML.InvokeMethod("PropSetToXML",psIn,psInxml);
		sLogId = bsSys.Log("接口显示名" , "" , "Running" , "" , psInxml.GetValue().substring(0,4000) , "");
		//此处调用接口
		//bsZCRM_ZZ.InvokeMethod("ZcrmWtc",psIn,psOut);

		//接口出参日志
		bsXML.InvokeMethod("PropSetToXML",psOut,psOutxml);
		bsSys.Log("接口显示名" , sLogId , "Success" , psOutxml.GetValue().substring(0,16349) , 	psInxml.GetValue().substring(0,4000) ,"");	

catch(e)
   {
		//接口异常日志
		bsSys.Log("拉取未投产数据" , sLogId , "Error" ,  e.message.substring(0,16349) , psInxml.GetValue().substring(0,4000) , "" );
		throw e.message;
	}

四、REST API的使用

主要是移动端对BC、BS的调用接口

  1. 浏览器:系统管理->Rest集成,如果是调用BC:接口代码既BO的大写,BO、BC填写相应的名称;若果是调用BS,BO、BC不填只用填BS即可,方法分为标准方法和BS客户化方法,方法和字段分别填写方法和参数即可

在这里插入图片描述在这里插入图片描述

五、数据批量导入的使用

  1. 配置模板文件TXT,示例如下:

BOName:Service Request,BCName:Service Request,Imdata1:Status:F,Imdata2:Account:P#Name,Imdata3:NGC All WOEG Amount:F,Imdata4:INS Product:F,Imdata5:Area:F,Imdata6:Sub-Area:F
斜体字符为自定义字段,指定BO、BC之后,配置要导入的字段普通字段和静态PK用 :F结尾,动态PK用**

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

CRM接口开发日志 的相关文章

随机推荐

  • 表单嵌套表单涉及的校验和数据回显

    props中接收父组件的传值 data中定义表单的初始值 不能写成空对象 会报错 在created中对编辑的情况进行赋值 注意不能直接赋值 数据不是响应式的 需要使用到this set props formData type Object
  • Java-JavaWeb—(12)Maven

    1 Maver简介 1 1Maver是什么 Maven的本质是一个项目管理工具 将项目开发和管理过程抽象成一个项目对象模型 POM Maven是用Java语言编写的 他管理的东西统统以面向对象的形式进行设计 最终他把一个项目看成一个对象 而
  • JVM之垃圾回收机制

    垃圾回收机制 垃圾回收时机 System gc JVM垃圾回收机制决定 垃圾回收策略 如何判断对象已死 引用计数算法 可达性分析算法 需要垃圾回收的内存 方法区 元空间 堆 新生代 Young Generation 老年代 Old Gene
  • 深度学习基础学习-注意力机制(计算机视觉中)

    在网上看到很多关于注意力机制的说明 下面自己总结一下 大佬绕道 下面放几个文章的链接 添深度学习中的注意力模型 计算机视觉中的注意力机制 图像处理注意力机制Attention汇总 注意力机制详述 注意力机制总结 空间注意力机制和通道注意力机
  • Apache Kafka 编程实战-java客户端开发例子(入门教程轻松学)

    作者 稀有气体 来源 CSDN 原文 https blog csdn net liyiming2017 article details 82805479 版权声明 本文为博主原创文章 转载请附上博文链接 本入门教程 涵盖Kafka核心内容
  • 解决VNC server 连接不上的问题

    关于VNC server的配置可参考 Rock pi 开启VNC远程桌面适用于VNC KDE桌面 启动vnc server 但是连不上 因为只监听了127 0 0 1 所以需要在启动VNC server时添加参数 localhost no
  • 关于一个轻量、可靠的移动端 Vue 组件库

    最近挖掘到一个非常好用的组件库Vant 这边放一下vant官网链接 有兴趣的可以去尝试一下 Vant 4 Lightweight Mobile UI Components built on Vue 那么很多人就要问 Vant它到底好在那 我
  • npm-nrm安装执行报错问题解决

    npm nrm安装执行报错问题解决 问题一 nrm执行报错 internal validators js 124 throw new ERR INVALID ARG TYPE name string value 打开nrm目录下的cli j
  • Flutter Stack布局中定位的方式

    前言 想要记录一下Stack布局中 定位的两种方式 代码 省略无关代码 child new Column children
  • React-Hooks之useImperativeHandle使用,让父组件操纵子组件的状态和方法

    您好 如果喜欢我的文章 可以关注我的公众号 量子前端 将不定期关注推送前端好文 useImperativeHandle是react官方为了简便我们的ref操作 同时还可以让子组件返回给父组件自身的状态和方法去调用 useRef将ref绑定到
  • Qt加载动态链接库

    Qt加载动态链接库 1 直接在pro文件中添加 首先将 a 或者 lib 和 dll文件放入某一目录中 一般是放入程序目录下 例如在程序目录下放入了mydll lab和mydll dll文件 然后在 pro文件中添加 LIBS L PWD
  • 【C#学习笔记】打开新进程

    using System using System Collections Generic using System ComponentModel using System Data using System Drawing using S
  • unity动画倒播与动态设置循环

    动画倒播 之前都是使用混合动画的方法实现无缝衔接倒播的动作 这次的动画混合因为两段动画不一致 丢失了一部分动画 我哪里敢麻烦美工爸爸重做一个 另一方面觉得只要把动画倒播就能轻松搞定这个问题 然后我就踩了下坑 大部分的方法都是使用旧动画系统
  • Adam和学习率衰减(learning rate decay)

    1 梯度下降法更新参数 梯度下降法参数更新公式 其中 是学习率 t是第 t 轮的参数 J t 是损失函数 J t 是梯度 在最简单的梯度下降法中 学习率 是常数 是一个需要实现设定好的超参数 在每轮参数更新中都不变 在一轮更新中各个参数的学
  • Python数据分析与应用实例

    目录 一丶可视化绘图案例 1 曲线图 2 柱形图 4丶3D散点图 5 绘制漏斗图 6 绘制词云图 二丶包 模块使用示例 三丶pandas对数据的预处理 1 检测重复值 2 标准化数据 3 哑变量处理 4 离散化连续型数据 1 等宽法离散化
  • Vue项目中,在js文件中使用ElementUi实现消息提示

    开篇 大家好 我是麦洛 作为一个前端废材 今天在做项目时候遇到一个问题 当我在封装一个前端工具类js文件时 想使用elementui的message组件来实现消息提示 经过一番学习 总算实现了 特意总结一下 问题探究 一般在我们前端项目的m
  • springboot项目中关于时间类型转换的格式问题

    常常项目里转时间类型出现如下错误 Can not deserialize value of type java util Date from String 2018 10 24 12 12 12 not a valid representa
  • 应急响应 -162天:webshell和内存马查杀

    首要任务 获取当前WEB环境的组成架构 语言 数据库 中间件 系统等 IIS NET 注入 基于时间配合日志分析 背景交代 某公司在某个时间发现网站出现篡改或异常 应急人员 通过时间节点配合日志分析攻击行为 如 翻日志 确定攻击时间 请求方
  • 设计模式---中介者模式(DesignPattern_Mediator)

    摘录自 设计模式与游戏完美开发 十年磨一剑 作者将设计模式理论巧妙地融入到实践中 以一个游戏的完整实现呈现设计模式的应用及经验的传承 轩辕剑 之父 蔡明宏 资深游戏制作人 李佳泽 Product Evangelist at Unity Te
  • CRM接口开发日志

    文章目录 前言 一 Inbound WebService的创建 1 对应关系 2 通过BS创建Inbound WebService 入栈WS 创建IO 创建BS 创建Inbound WebService 测试 二 Outbound WebS