
# 创建JavaScript服务编排
#### 操作场景
当您需要编排复杂的联表查询的SQL语句，或者工业数字模型驱动引擎-数据建模引擎（xDM Foundation，简称xDM-F）提供的标准接口无法满足您实际业务场景时，您可以通过JavaScript服务编排实现。本文为您介绍如何使用JavaScript服务编排。
#### 前提条件
- 已[登录应用运行态](https://support.huaweicloud.com/consog-idme/idme_consog_0023.html)。
- 已在应用设计态的"应用中心 \> 应用配置"中开启"xdm.runtime.custom.enable"配置项，具体操作请参见[应用配置](https://support.huaweicloud.com/usermanual-idme/idme_usermanual_0134.html)。
 
#### 操作步骤
1. 在左侧导航栏中，选择"服务编排管理 \> 高代码编排"，进入"高代码编排"页面。
2. 单击"创建"。
3. 根据页面提示，配置如下信息。 
   图1服务定义   
   ![](https://support.huaweicloud.com/usermanual-idme/figure/zh-cn_image_0000001800464733.png "点击放大")
   表1服务定义-基本信息 
   | 参数      | 参数说明                                                                                                                                                                                                                                                                                                   |
   |:---|:---|
   | API英文名称 | 填写服务编排的英文名称。                                                                                                                                                                                                                                                                                           |
   | API中文名称 | 填写服务编排的中文名称。                                                                                                                                                                                                                                                                                           |
   | API英文描述 | 填写服务编排的英文描述。                                                                                                                                                                                                                                                                                           |
   | API中文描述 | 填写服务编排的中文描述。                                                                                                                                                                                                                                                                                           |
   | 责任人     | 填写服务编排的责任人。                                                                                                                                                                                                                                                                                            |
   | API类型   | 支持Java和JavaScript两种类型，此处选择"JavaScript"类型。                                                                                                                                                                                                                                                              |
   | 是否支持分页  | - 是：返回结果会进行分页拉取数据。  - 否：只返回1000条数据。                        |
   | 标签      | - 如果您有可使用的标签，可选择"添加标签"。  - 如果您没有可使用的标签，可选择"自定义"。   |
      
   
   
4. 单击"保存"。
5. 在"脚本显示"页签的代码编辑框中，编写JavaScript服务编排的SQL脚本。 
   图2JavaScript服务编排脚本   
   ![](https://support.huaweicloud.com/usermanual-idme/figure/zh-cn_image_0000001753346112.png "点击放大")
   
   
6. 完成脚本编排后，单击左上方的"保存"，保存脚本。系统每隔30秒会自动保存脚本内容。 
   - 如果脚本代码错误，会在代码编辑框中出现报错提示，请根据页面提示处理。
     图3报错提示   
     ![](https://support.huaweicloud.com/usermanual-idme/figure/zh-cn_image_0000001800345705.png "点击放大") 
   
   - 如果您想重新对脚本代码进行排版，您可以单击右上方的"代码格式化"，一键格式化SQL脚本。
     图4代码格式化   
     ![](https://support.huaweicloud.com/usermanual-idme/figure/zh-cn_image_0000001753505000.png) 
   
   - 如果您想查看脚本生成的SQL在对应数据库的执行计划，您可以先在"模拟API-输入参数"中输入参数，然后单击"查看执行计划"即可查看。
     图5查看执行计划   
     ![](https://support.huaweicloud.com/usermanual-idme/figure/zh-cn_image_0000001983457554.png "点击放大") 
   
   - 如果您想查看执行脚本实际会执行的SQL语句，您可以先在"模拟API-输入参数"中输入参数，然后单击"查看SQL"，查看最终执行的SQL。
     图6查看SQL   
     ![](https://support.huaweicloud.com/usermanual-idme/figure/zh-cn_image_0000001800464737.png "点击放大") 
   
   - 如果您想验证脚本的正确性或者验证脚本是否符合预期，您可以在"模拟API-输入参数"中通过"Json"和"Table"两种输入方式输入参数，单击"运行并保存"进行验证。 系统将在"输出结果"中返回运行结果，便于确认脚本是否符合预期。
     图7输出结果   
     ![](https://support.huaweicloud.com/usermanual-idme/figure/zh-cn_image_0000001753346116.png "点击放大")
     当脚本执行出现异常时，切换至"日志"页签，系统自动展示系统错误堆栈（如异常类型、错误行等）或是用户自定义的日志信息（如通过XdmJsLog.log("mylog")等方法输出的业务标记信息）。
     图8日志信息   
     ![](https://support.huaweicloud.com/usermanual-idme/figure/zh-cn_image_0000002284777852.png "点击放大") 
   
   
   
   
7. 确认脚本编写完成后，单击"发布"，生成服务编排API。 
   此时，您可以选择"服务预览"页签，通过可视化页面预览生产环境的运行效果。
   您也可以前往"数据服务管理 \> 全量数据服务"的"服务编排"，获取该服务编排的API信息，通过API方式调用此服务编排。
   
   
 
