(2024.2) 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; }