开发者社区 问答 正文

关于表单设计使用了【控件组】,应该如何使用接口【发起审批实例】

创建表单时,如果表单使用了【控件组】,例如使用了控件组中的【请假/调休】控件
那么接口中的参数【formComponentV】应该如何填写呢?
我试了很多种方式都是提示:
{"requestid":"69DAE351-8101-71DE-A3E6-F960EF9F6CA1","code":"processInstanceStartFailed","message":"创建审批实例失败"}

展开
收起
t7rhztyl6rf5m 2023-08-03 18:39:12 179 分享 版权
3 条回答
写回答
取消 提交回答
  • 我用接口【获取表单 schema】,返回的表单的数据是这样的:

    {"result":{"creatorUserId":"xxxx","gmtModified":"2023-08-03T17:48Z","formUuid":"xxxxxxx","bizType":"","ownerIdType":"orgId","formCode":"Pxxxxxxx","memo":"","engineType":0,"gmtCreate":"2023-08-03T17:23Z","schemaContent":{"icon":"common","title":"测试请假","items":[{"componentName":"DDHolidayField","props":{"staffStatusEnabled":true,"format":"yyyy-MM-dd","bizAlias":"","label":"[\"开始时间\",\"结束时间\"]","durationLabel":"时长","pushToCalendar":1,"required":true,"push":{"attendanceRule":1,"pushSwitch":1,"pushTag":"请假"},"duration":true,"unit":"","holidayOptions":[],"options":["{\"unit\":\"hour\",\"name\":\"事假\",\"leaveCode\":\"7016d2bb-a768-464d-99ee-1766a6580271\",\"displayUnit\":\"按小时请假\"}","{\"unit\":\"halfDay\",\"name\":\"年假\",\"leaveCode\":\"460b2d98-7ae6-4b11-9b6f-d89453779758\",\"displayUnit\":\"按半天请假\"}","{\"unit\":\"day\",\"name\":\"病假\",\"leaveCode\":\"c8f1fa70-44dd-4555-8276-2562ec3cc509\",\"displayUnit\":\"按天请假\"}","{\"unit\":\"day\",\"name\":\"婚假\",\"leaveCode\":\"09e9eb2f-36f0-41ca-9633-1abb10498553\",\"displayUnit\":\"按天请假\"}","{\"unit\":\"day\",\"name\":\"产假\",\"leaveCode\":\"3fa0310f-16ec-47a3-9828-7915d54cc00b\",\"displayUnit\":\"按天请假\"}","{\"unit\":\"day\",\"name\":\"陪产假\",\"leaveCode\":\"e20bf420-c256-4ab2-a614-26381a70c1ac\",\"displayUnit\":\"按天请假\"}","{\"unit\":\"hour\",\"name\":\"哺乳假\",\"leaveCode\":\"c37c86f6-446c-4f26-b5eb-01d85918ddf9\",\"displayUnit\":\"按小时请假\"}","{\"unit\":\"day\",\"name\":\"丧假\",\"leaveCode\":\"db09e194-c04f-4394-8995-a6add3660225\",\"displayUnit\":\"按天请假\"}"],"id":"xxxxxxxx","placeholder":"请选择","attendTypeLabel":"请假类型"}},{"componentName":"TextareaField","props":{"staffStatusEnabled":false,"holidayOptions":[],"bizAlias":"","id":"TextareaField_VPWN1D2B9FK0","label":"请假事由","placeholder":"请输入","required":false,"push":{}}}]},"appUuid":"dingbb14fe16a8346f4cee0f45d8e4f7c288","appType":0,"visibleRange":"PRIVATE","listOrder":98,"name":"测试请假","status":"PUBLISHED","procType":"inner"}}
    
    2023-08-04 10:01:56
    赞同 展开评论
  • 当表单中使用了控件组,并且需要在接口中传递相应的参数时,您可以按照以下步骤进行填写:

    1. 首先,在接口中的formComponentV参数中,将控件组的字段名作为键,控件组值作为对应的值。通常,控件组是一个数组,其中包含多个子控件的值。

    2. 对于【请假/调休】控件组,它通常包含多个子控件(如开始时间、结束时间、请假类型等)。您需要将这些子控件的值作为对象传递给对应的控件组字段。

    示例:

    "formComponentV": {
      "请假/调休": {
        "开始时间": "2022-11-01 09:00:00",
        "结束时间": "2022-11-02 18:00:00",
        "请假类型": "年假"
      }
    }
    

    请确保您提供的字段名和字段值与实际的控件组名称和值一致。如果仍然遇到创建审批实例失败的问题,请检查错误提示中提供的requestidmessage,以获取更详细的错误信息,并参考钉钉开放平台的文档或联系钉钉技术支持团队寻求帮助。

    2023-08-03 21:30:15
    赞同 展开评论
  • 北京阿里云ACE会长

    如果表单中使用了控件组,在创建审批实例时,应该将控件组中的所有控件都作为参数传递给接口中的【formComponentValues】字段,而不是使用控件组控件的名称或者其他方式。

    具体来说,您可以按照以下步骤进行参数填写:

    首先,您需要获取表单中所有控件的ID和值,包括控件组中的所有控件。

    然后,您需要将控件ID和对应的值组合成一个JSON对象,并将该对象添加到一个数组中。

    最后,您需要将该数组作为【formComponentValues】的值传递给创建审批实例的接口。

    2023-08-03 19:04:13
    赞同 展开评论