Loading
目录
选择筛选器

          没有结果
          没有结果
          以下是一些搜索提示

          检查关键字的拼写。
          使用更普遍的搜索词。
          选择更少的筛选器,并扩大搜索范围。

          搜索所有 Salesforce 帮助
          使用远程操作从 Omniscript 调用 Apex

          使用远程操作从 Omniscript 调用 Apex

          使用远程元素从 Omniscript 调用 Apex 类,并使用 Omniscript 的 JSON 作为输入。

          在开始前,请在 Salesforce 中创建 Apex 类,以从 Omniscript 调用。在 SOQL 查询中包含 ID。该字段是必填项,因为 Apex 类保留查询,并根据实际执行的内容序列化数据。

          1. 在步骤前、步骤中或步骤后添加远程元素,以在 Omniscript 中加载数据或发送数据。
            Omniscript 的数据 JSON 作为输入发送。
          2. 远程类字段中,输入操作调用的 Apex 类的名称。
          3. 远程方法字段中,输入操作调用的类的方法。例如 — validateAddress
          4. 如果需要,启用调用长期运行的操作的从属集成程序,以使用 Apex 继续。
          5. 转换前转换后 Omnistudio 数据映射器界面中,可以选择在远程操作之前或之后运行的数据映射器转换界面。
          6. 使用远程超时属性更改操作超时前的时间。在元素中,单击编辑属性为 JSON,在remoteTimeout属性中,设置以毫秒为单位的时间。
            默认超时是 30,000,或 30 秒。最大值是 120,000,即 120 秒。
          7. 在远程操作中配置其他属性。
          8. 通过选择调用模式,选择操作的响应行为。
            • 默认 — 使用加载旋转器阻止 UI。

            • 非阻止 — 异步运行,响应应用于 UI。不支持 Omnistudio 数据映射器转换前和后和大附件。当调用模式设置为非阻止时,使用默认值的元素将不会收到响应,因为该元素在响应返回之前加载。要将响应映射到元素,您必须将响应 JSON 节点设置为 VlocityNoRootNode,并将响应 JSON 路径设置为元素的名称。

            • 触发并忘记 — 异步运行,不回调 UI。不支持数据映射器转换前和转换后以及大附件。响应仍会显示在调试控制台中,但不会应用到数据 JSON。

          9. 当调用模式设置为非阻止时,使用默认值的元素将不会收到响应,因为该元素在响应返回之前加载。您必须配置这些属性,以将响应映射到元素:
            • 响应 JSON 节点:VlocityNoRootNode

            • 响应 JSON 路径:接收值的 Omniscript 元素的名称。

          排除 Omniscript 故障
          排除 Omniscript 故障

          在故障排除 Omniscript 中,callOut1 远程操作元素调用外部系统来检查资产是否仍在保修范围内。该示例引用了Omniscript故障排除以及OmniCalloutDataObjectService Apex类。

          它实施远程OmniCallout类和远程checkWarrantyStatus方法。由于这是 Omniscript 示例,因此该方法包含硬编码响应:

          图像

          callOut2 远程操作调用 returnItemOrder 方法,该方法又调用调用调用 Heroku 实例的 DataObjectService 类,以返回订单号:

          图像

          以下类结构可用于调用外部系统:

          global with sharing class CustomClassName implements NS.VlocityOpenInterface
             {
          
              global CustomClassName() {}
          			
              global Boolean invokeMethod(String methodName, Map<String,Object> inputMap, Map<String,Object> outMap, Map<String,Object> options) {
          			
                        Boolean result = true;
          			
                try{
          			
                       if(methodName.equals('customMethodName')){
          			
                       // your implementation, use outMap to send response back to OmniScript                                                                  
          			
                      }
          			
                      } 
           
          	else if(methodName.equals('customMethodName2')){
          			
                      // your implementation, use outMap to send response back to OmniScript                   
          			
                   }                              
          			
                } catch(Exception e){
          			           
                   result = false;
          			        
                }
          			 
                       return result;
          			      
             }
          			
          }
          
           
          正在加载
          Salesforce Help | Article