Fx.work

Fx.work: APIs related to collaborative work

1. Send tasks

Fx.work.createTask(<String title>, <String content>, <DateTime deadLine>, <Map executeUsers>, <Map atUsers>)

Parameter Description

| parameter | type | description |
| ------------ | ------------ | ----------------------- ----------------------------------------- |
| title | String | task title |
| content | String | task content |
| deadLine | DateTime | task completion time |
| executeUsers | Map | Executor |
| atUsers | Map | Cc range |

return type

APIResult

Return value description

Java example

DateTimeDuration day = DateTimeDuration. Days(1);
DateTime deadLine = DateTime.now().plus(day);
Map<String, List<String>> executeUsers = Maps. newHashMap();
executeUsers. put("users", Lists. newArrayList("1059"));

Map<String, List<String>>atUsers = Maps. newHashMap();
atUsers. put("users", Lists. newArrayList("1059","1025"));
atUsers. put("departments", Lists. newArrayList("253937"));
APIResult ret = Fx.work.createTask("hello", "world", deadLine, executeUsers, atUsers);
if (ret. isError()) {
    log.info(ret.message());
} else {
    log.info(ret.getData());
}

Groovy example

DateTime deadLine = DateTime.now + 1.days
Fx.work.createTask("hello", "world", deadLine, [users: ["1059"]], [users: ["1059","1025"],departments:["253937"]])

Precautions

  • executeUsers map keys : "users" users, "departments" departments
    atUsers map keys : "users" users, "departments" departments

2. Create task v2 and return the task id

Fx.work.createTaskV2(<String title>, <String content>, <DateTime deadLine>, <Boolean multiExecute>, <Map executeUsers>, <Map atUsers>, <List objects>)

Parameter Description

| parameter | type | description|
| ------------ | ------------ | ----------------------- ----------------------------------------- |
| title | String | task title |
| content | String | task content |
| deadLine | DateTime | task completion time |
| multiExecute | Boolean | Whether multiple people execute |
| executeUsers | Map | Executor |
| atUsers | Map | Cc range |
| objects | List | associated objects |

return type

APIResult

Return value description

String

Java example

DateTimeDuration day = DateTimeDuration. Days(1);
DateTime deadLine = DateTime.now().plus(day);
Map<String, List<String>> executeUsers = Maps. newHashMap();
executeUsers. put("users", Lists. newArrayList("1059"));

Map<String, List<String>>atUsers = Maps. newHashMap();
atUsers. put("users", Lists. newArrayList("1059","1025"));
atUsers. put("departments", Lists. newArrayList("253937"));

List<Map<String, String>>objects = Lists. newLinkedList();
objects.add(Maps.of("object_api_name", "object_l9348__c", "id", "60d53e038bc25c00016c75f6"));
objects.add(Maps.of("object_api_name", "ContractObj", "id", "60f54c9c4fc0fa000107c1f7"));
objects.add(Maps.of("object_api_name", "ContractObj", "id", "8e82821584474cb79ae693c267cc7395"));

APIResult ret = Fx.work.createTaskV2("hello", "world", deadLine, false, executeUsers, atUsers, objects);
if (ret. isError()) {
    log.info(ret.message());
} else {
    log.info(ret.getData());
}

Groovy example

DateTime deadLine = DateTime.now + 1.days
List objects = [
  [object_api_name: "object_l9348__c", id: "60d53e038bc25c00016c75f6"],
  [object_api_name: "ContractObj", id: "60f54c9c4fc0fa000107c1f7"],
  [object_api_name: "ContractObj", id: "8e82821584474cb79ae693c267cc7395"]
]
def (Boolean error, String taskId, String errorMessage) = Fx.work.createTaskV2("hello", "world", deadLine, false, [users: ["1000"]], [users: ["1000"]], objects)
if (error) {
  log. info(errorMessage)
} else {
  log. info(taskId)
}

3. Executing tasks

Fx.work.executeTask(<String taskId>, <String executor>)

Parameter Description

| parameter | type | description |
| ------------ | ------------ | ----------------------- ----------------------------------------- |
| taskId | String | task id |
| executor | String | task executor |

return type

APIResult

Return value description

Java example

APIResult ret = Fx.work.executeTask("3b4d8c49b207417f99941688c8ee719f", "1017");
if (ret. isError()) {
    log.info(ret.message());
} else {
    log.info(ret.getData());
}

Groovy example

Fx.work.executeTask("3b4d8c49b207417f99941688c8ee719f", "1017")

4. Cancel the task

Fx.work.cancelTask(<String taskId>)

Parameter Description

| parameter | type | description |
| ------------ | ------------ | ----------------------- ----------------------------------------- |
| taskId | String | task id |

return type

APIResult

Return value description

Java example

APIResult ret = Fx.work.cancelTask("3b4d8c49b207417f99941688c8ee719f");
if (ret. isError()) {
    log.info(ret.message());
} else {
    log.info(ret.getData());
}

Groovy example

Fx.work.cancelTask("3b4d8c49b207417f99941688c8ee719f")

5. Create a schedule binding business object

*Fx.work.createSchedule(<String content>, <DateTime beginTime>, <DateTime endTime>, <Boolean isFullDate>, <Boolean needReceipt>, <List remindTimes>, <Map attendees>, <List objects>) *

Parameter Description

| parameter | type | description |
| ------------ |------------ | ------------------------------------- ----------------------- |
| content | String | schedule content |
| beginTime | DateTime | schedule start time |
| endTime | DateTime | Schedule end time |
| isFullDate | Boolean | Whether full-day schedule |
| needReceipt | Boolean | Need a receipt |
| reminderTimes | List | reminder times |
| attendees | Map | Cc range/participants |
| objects | List | bound object data |

return type

APIResult

Return value description

Java example

DateTimeDuration day = DateTimeDuration. Days(1);
DateTime endTime = DateTime.now().plus(day);
Map<String, List<String>>attenders = Maps. newHashMap();
attendees. put("users", Lists. newArrayList("1001","1017","1018"));


List<Map<String, String>>objects = Lists. newLinkedList();
objects.add(Maps.of("apiName", "LeadsObj", "dataId", "5dc276e1a25b1800018dafe9"));
objects.add(Maps.of("apiName", "AccountObj", "dataId", "5f3f86136ede600001da386e"));

APIResult ret = Fx.work.createSchedule("hello", DateTime.now(), endTime , false, false, Lists.newArrayList(RemindTime.BEGIN()), attendees, objects);
if (ret. isError()) {
    log.info(ret.message());
} else {
    log.info(ret.getData());
}

Groovy example

DateTime endTime = DateTime.now + 1.hours;
def ret = Fx.work.createSchedule("hello", DateTime.now(), endTime, false, false, [RemindTime.BEGIN()], [users: ["1001","1017","1018"]] , [[apiName:"LeadsObj", dataId:"5dc276e1a25b1800018dafe9"],[apiName:"AccountObj", dataId:"5f3f86136ede600001da386e"]]);

(1). Refer to RemindTime
Precautions

  • atUsers map keys : "users" users, "departments" departments
    object keys: "apiName" object API name, "dataId" business data Id

6. Send sales records

Fx.work.createSalesRecord(<String content>, <List objects>, <Map atUsers>)

Parameter Description

| parameter | type | description |
| ------------ | ------------ | ----------------------- ----------------------------------------- |
| content | String | sales record content |
| objects | List | associated objects |
| atUsers | Map | Cc range |

return type

APIResult

Return value description

Java example

Map<String, List<String>>attenders = Maps. newHashMap();
attendees. put("users", Lists. newArrayList("1001","1017","1018"));

List<Map<String, String>>objects = Lists. newLinkedList();
objects.add(Maps.of("object_api_name", "object_l9348__c", "id", "60d53e038bc25c00016c75f6"));

APIResult ret = Fx.work.createSalesRecord("hello", objects, attendees);
if (ret. isError()) {
    log.info(ret.message());
} else {
    log.info(ret.getData());
}

Groovy example

Fx.work.createSalesRecord("hello", [[object_api_name : "AccountObj", id : "4d79c3068aca42b28aebbc98223e8bed"]], [users : [ "1025"]])

7. Send activity records

Fx.work.addActiveRecord(<ActiveRecord activeRecord>)

Parameter Description

| parameter | type | description |
| ------------ | ------------ | ----------------------- ----------------------------------------- |
| activeRecord | ActiveRecord | Active Record |

return type

APIResult

Return value description

Groovy example

ActiveRecord activeRecord = ActiveRecord. build {
    //Sales record content
    text = "hello"
    // Active record fields, and other data Map
    recordData = [active_record_type: "0"]
    //Associated objects List<Map>refObjects = [[apiName: "AccountObj", objectId: "5e4df95ccccd3a0001ebeac6"]]
    range {
        departments = []
        users = []
    }
    images = [Image.of(name: "name", nPath: "path", size: 0, ext: ".doc")]
    attachments = [Attachment.of(name: "name", nPath: "path", size: 0)]
}
def (boolean error, Object data, String msg) = Fx.work.addActiveRecord(activeRecord)
if (error) {
    log. info(data)
} else {
    log. info(msg)
}

Reference class com.fxiaoke.functions.enums.RemindTime

2022-11-23
0 0