break; } } else { $THIS_JOB = new job_id_user(); $THIS_JOB->get_from_hashrange($JOB->id_user, $JID_MERGE_CHECK); // THIS JOB WAS *NOT* RUN TO FILL A PLACEHOLDER IN AN OUTPUT ENTRY FROM ANOTHER JOB logger("\t\t" . "THIS JOB WAS *NOT* RUN TO FILL A PLACEHOLDER IN AN OUTPUT ENTRY FROM ANOTHER JOB\n"); if ($THIS_JOB) { if ($THIS_JOB->id_status == 'done') { // this will be the case on direct runs // and also this will be the ending point on nested subjobs after having // traced up to the completed root of the job tree // $STDOUT = is the value that is posted to the output expression url $OUTPUT_STRING = new strings(); $OUTPUT_STRING->get_from_hashrange($THIS_JOB->str_output); $OUTPUT_STRING->build(); if (isset($OUTPUT_STRING->body)) { if (strlen($OUTPUT_STRING->body) > 0) { // in edit mode, this won't get hit $STDOUT = $OUTPUT_STRING->body; logger("\t\t" . "POST-MERGE OUTPUT:\n" . substr($STDOUT, 0, 200) . "\n"); // CHILD JOB MERGING _MIGHT_ HAVE CHANGED THE RAW OUTPUT OF THE JOBS...UPDATE IT JUST IN CASE SO THAT ADJACENT DICTIONARY GETS THE UPDATED INFO $adjacent_dictionary["[RAW_OUTPUT]"] = $STDOUT; logger("\tSAVING ADJACENT DICTIONARY TO JOB\n"); $ad_data = array('ad' => $adjacent_dictionary); $ad_encoded = base64_encode(serialize($ad_data)); $JOB->update(array('str_ad' => $ad_encoded)); /* $output_expression_jid=$JID_MERGE_CHECK; if ( strlen(trim($STDOUT))>0 ) {