int MACRO_DEBUG; MACRO_DEBUG=1; // Always return OK from this spel set_error(0); string func_name; func_name="Auto-Assign WF Spell Macro"; string co_cnt_name, co_grp_name; uuid co_cnt_uuid, co_grp_uuid; co_cnt_uuid = (uuid) expand( format("&{%s=chg.id->assignee}", chg) ); co_grp_uuid = (uuid) expand( format("&{%s=chg.id->group}", chg) ); logf( SIGNIFICANT, "%s - Reassigning a task for CO (%s) ", func_name, chg.chg_ref_num); if ( is_empty(co_cnt_uuid) || is_null(co_cnt_uuid) ) { // The CO does not have an Assignee .. if ( MACRO_DEBUG ) logf( SIGNIFICANT, "%s - Parent CO (%s) does not have an Assignee set", func_name, chg.chg_ref_num); if ( is_empty(co_grp_uuid) || is_null(co_grp_uuid) ) { // The CO does not have a Group assigned ... logf( SIGNIFICANT, "%s - Parent CO (%s) does not have a Group set, exiting now", func_name, chg.chg_ref_num); return; } } // OK, since we got here, we either have a CO Assignee or Group Assigned // and the WF does not have an Assignee set so we can make the transfer. if ( !is_empty(co_cnt_uuid) && !is_null(co_cnt_uuid) ) { // We have an Assignee on the parent Change Order send_wait ( 0, this, "call_attr", "assignee", "set_val", co_cnt_uuid, "SURE_SET"); if ( msg_error() ) { logf(ERROR, "%s - Change WF Task Assignee for CO %s failed: %s", func_name, chg.chg_ref_num,msg[0] ); } else { if ( MACRO_DEBUG ) logf( SIGNIFICANT, "%s - WF Task (%s) Assignee set to CO %s Assignee", func_name, (string) id, chg.chg_ref_num); } } else { // We don't have an Assignee on the parent Change Order, but we have a Group assigned send_wait ( 0, this, "call_attr", "group", "set_val", co_grp_uuid, "SURE_SET"); if ( msg_error() ) { logf(ERROR, "%s - Change WF Task Group for CO %s failed: %s", func_name, chg.chg_ref_num, msg[0]); } else { if ( MACRO_DEBUG ) logf( SIGNIFICANT, "%s - WF Task (%s) Group set to CO %s Group", func_name, (string) id, chg.chg_ref_num); } } return;