update_object
This method allows to update multiple object attributes and atributes of related objects.
Definition:
update_object( uuid, string, object|nil, object|nil, int, ... ) ;
uuid - user id
string - persistent id of the object. Use this option only if you are runing from bop_cmd or POST_CI trigger, otherwise you will lock your object.
object|nil - reference object may be used instead of persistent id of the object. If this parameter is passed to the method - system will try to do checkin inside of the method and will return an error if no group_leader was passed. Do not use this option if you need to update SRE attribute since it will fail.
object|nil - group_leader
int - defines wich parameter from this parameter is first that defines attribute name, usualy 0 (zero means that next parameter contains first atribute name to populate)
... - name-value pairs for the attributes to update "atribute1", "value1","atribute2", "value2" it may also contain dot references to the attributes of related objects
working example:
when persistent id is used without group leader
uuid who;
send_wait(0,top_object(), "call_attr", "cnt", "current_user_id");
who=msg[0];
send_wait(0, top_object(), "call_attr", "api", "update_object", who, "site:1000104", NULL, NULL, 0, "name", "test123");
if (msg_error()) {
printf("create failed %s",msg[0]);
}
when persistent id is used with group_leader and dot references
uuid who;
object newobject, group_leader;
send_wait(0,top_object(), "call_attr", "cnt", "current_user_id");
who=msg[0];
send_wait(0, top_object(), "get_co_group");
if (msg_error()) {
printf("Error'%s'", msg[0]);
return;
}
else{
group_leader = msg[0];
}
send_wait(0, top_object(), "call_attr", "api", "update_object", who, "loc:27F1BC6523B7CC45936CF7A35BB04EF3", NULL, group_leader, 0, "site.description", "test123");
if (!msg_error()) {
send_wait(0, group_leader, "checkin");
if (msg_error()) {
printf("Error'%s'", msg[0]);
}
}
else{
printf("create failed %s",msg[0]);
}
When reference object is used instead of persistent id
uuid who;
object newobject, siteobject, group_leader;
send_wait(0,top_object(), "call_attr", "cnt", "current_user_id");
who=msg[0];
send_wait(0, top_object(), "get_co_group");
if (msg_error()) {
printf("Error'%s'", msg[0]);
return;
}
else{
group_leader = msg[0];
}
send_wait(0, top_object(), "call_attr", "loc", "dob_by_persid", 0, "loc:27F1BC6523B7CC45936CF7A35BB04EF3");
if (msg_error()) {
printf("Error %s",msg[0]);
}
else
{
siteobject = msg[0];
}
send_wait(0, top_object(), "call_attr", "api", "update_object", who, "", siteobject, group_leader, 0, "description", "reftest7");
if (msg_error()) {
printf("create failed %s",msg[0]);
}