Document toolboxDocument toolbox

(v1) MFK Validation with cURL

This is an example of cURL usage to contact an outside Web Service or REST API in a Custom Validation. cURL can also be used in Custom Events or Custom APIs

Custom Validation using CURL
<?php
/** Custom Validation ********
 * Description: MFK Validation
 * Table Name: GLA
 * Table Record: null
 * Action: Save
 */

if ($params["RECID"] == "addNew" && $params["format"] != "A/R") {
    // "A/R" type GLAs are excluded because their glNumber cannot be 40 characters
    $glNumber = $params["gla_item_1"].$params["gla_item_2"].
        $params["gla_item_3"].$params["gla_item_4"].
        $params["gla_item_5"].$params["gla_item_6"].
        $params["gla_item_7"].$params["gla_item_8"].
        $params["gla_item_9"].$params["gla_item_10"];

    // fill the corp with "10   "
    $corp = "10%20%20%20";

    // check parameter glNumber to be sure it isn't empty
    if (empty($glNumber)) {
        $this->setMessage("GLNumber (MFK) is null or empty");
        return false;
    }
    // verify the length if  parameter glNumber is 40 characters
    if (strlen($glNumber) != 40) {
        $this->setMessage("GLNumber (MFK) invalid length");
        return false;
    }

    if ((int)$params["gla_item_3"] >= 7000) {
        $corp = "20%20%20%20";
    }

    $valGLNumber = $corp . $glNumber;
    $address = "https://apps.its.uiowa.edu/mfk/api-single.jsp?mfk=";

    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $address.$valGLNumber);
    curl_setopt($ch, CURLOPT_HEADER, false);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);


    if (false === ($response = curl_exec($ch))) {
        $this->setMessage("GLNumber (MFK) validation failed");
        $status = false;
    } else {
        $response = explode("\n", $response);
        if ($response[0] == 1) {
            $status = true;
        } else {
            $this->setMessage("GLNumber (MFK) validation failed: $response[1]");
            $status = false;
        }
    }

    curl_close($ch);
    return $status;
}

Help Desk Portal - Email: help@pcr.com - Phone: 616.259.9242