예제 #1
0
    /**
     * @url POST /generate-bpmn
     *
     * @param array $request_data
     *
     * @status 201
     */
    public function doPostGenerateBpmn(array $request_data)
    {
        try {
            //Set data
            $request_data = array_change_key_case($request_data, CASE_UPPER);

            //Verify data
            $process = new \ProcessMaker\BusinessModel\Process();

            $process->throwExceptionIfDataNotMetFieldDefinition(
                $request_data,
                array("PRO_UID" => array("type" => "string", "required" => true, "empty" => false, "defaultValues" => array(), "fieldNameAux" => "processUid")),
                array("processUid" => "pro_uid"),
                true
            );

            //Generate BPMN
            $workflowBpmn = new \ProcessMaker\Project\Adapter\WorkflowBpmn();

            $projectUid = $workflowBpmn->generateBpmn($request_data["PRO_UID"], "pro_uid", $this->getUserId());

            $arrayData = array_change_key_case(array_merge(array("PRJ_UID" => $projectUid), $request_data), CASE_LOWER);

            $response = $arrayData;

            return $response;
        } catch (\Exception $e) {
            throw (new RestException(Api::STAT_APP_EXCEPTION, $e->getMessage()));
        }
    }
예제 #2
0
 /**
  * Generate BPMN (New record is generated)
  *
  * return void
  */
 public function generateBpmn()
 {
     try {
         $processUid = $_POST["processUid"];
         $workflowBpmn = new \ProcessMaker\Project\Adapter\WorkflowBpmn();
         $projectUid = $workflowBpmn->generateBpmn($processUid, "processUid", $_SESSION["USER_LOGGED"]);
         $this->status = "OK";
         $this->projectUid = $projectUid;
     } catch (Exception $e) {
         $this->status = "ERROR";
         $this->message = $e->getMessage();
     }
 }