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)
}