Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Table of Contents
minLevel1
maxLevel6
outlinetrue
typelist
separatorbrackets
printabletrue

For reference on all non-PCR-360 Functions, please refer to the PHP Documentation.

Allowed Functions

Array

explode , implode , is_array , in_array , array_diff , array_diff_keycountarray_column, array_chunk, array_combine, array_count_values, array_diff, array_diff_assoc, array_diff_key, array_fill, array_fill_keys, array_flip, array_intersect, array_intersect_assoc, array_intersect_key, array_intersect, array_is_list, array_key_exists, array_keys, array_merge, array_merge_recursive, array_multisort, array_pad, array_pop, array_product, array_push, array_rand, array_reduce, array_replace, array_replace_recursive, array_reverse, array_search, array_shift, array_slice, array_splice, array_sum, array_unique, array_unshift, array_values, compact, count, current, end, extract, in_array, key_exists, krsort, ksort, list, next, pos, prev, range, reset, rsort, shuffle, sort

Class/Object

get_called_class, get_class, is_a, is_subclass_of

Class/Interface Access

DateInterval, DateTime, Exception, PCR_Event, PCR_Exception, throwable

JSON

json_decode ,   json_encode, json_last_error, json_last_error_msg, json_validate

cURL

curl_init , curl_setopt , curl_exec , curl_errno , curl_error , curl_getinfo , curl_close , http_build_querycurl_close, curl_copy_handle, curl_errno, curl_error, curl_escape, curl_exec, curl_getinfo, curl_init, curl_pause, curl_reset, curl_setopt, curl_setopt_array, curl_strerror, curl_unescape

Date/Time

date , time , mktime , strtotime , DateTime , DateInterval , add , sub, diff, format , setTimestamp , setTime , setDate

Debug

error_log, debug

Debug Function
Code Block
languagephp
$this->debug();

Note: The debug command outputs to a cache which is then displayed in the Debug tab/grid for the Custom Logic you are debugging.

Logical

if , elseif , else , switch , case , default , break , for , foreach , as , while , do-while , return , new

Mathematical

round , trunc ,ceil , floor , rand , srand , pow , exp , abs , max , min , bindec , hexdec , octdec , base_convertadd, diff, date_add, date_create, date_create_from_format, date_diff, date_format, date_get_last_errors, date_interval_create_from_string, date_interval_format, date_parse, date_parse_from_format, date_sub, date_time_set, date_timestamp_get, date_timestamp_set, date_timezone_get, date_timezone_set, date, format, mktime, microtime, setDate, setTime, setTimestamp, strtotime, sub, time

Exception Handling

getPrevious, getCode, getLine

Logical

as, if, break, case, catch, continue, default, do, else, elseif, finally, for, foreach, function, match, new, return, switch, try, while

Mathematical

abs, base_convert, bindec, ceil, exp, floor, hexdec, max, min, octdec, pow, rand, round, srand, trunc

PCR-360 Data

call, query listFindCode, listFindValue, listGetByCode, listFindValue , listFindCode query

...

call Function: Calling API Logic
Code Block
languagephp
/*
$apiFunction Options: 
  saveService, saveServiceDesk, saveContact, saveCable, saveGla, saveEquipment, saveLocation,
  renderCustomReport, renderCableViewPath
*/

array $this->call (string $apiFunctionToCall, array $params, bool $commitOnSuccess);

...

query Function: Querying Data
Code Block
languagephp
array $this->query ( string $sql, array $bind_parameters );

// Example:
$results = $this->query("SELECT * FROM SERVICES WHERE RECID = :recid", [':recid' => 123]);
listGetByCode Function: Retrieving List Values
Code Block
languagephp
mixed $this->listGetByCode ( string $list_type, mixed $list_code );
listFindValue Function: Retrieving List Values
Code Block
languagephp
string $this->listGetByCode >listFindValue( int $recid );
listFindCode Function: Retrieving List Values
Code Block
languagephp
string $this->listGetByCode >listFindCode( int $recid );string $this->listGetByCode ( int $recid ););

PCR-360 Debug

debug, error_log

debug Function: Debugging Custom Logic
Code Block
languagephp
$this->debug(mixed $debug);

PCR-360 Events

attach, attachDb, callCustomEvent, detach, detachDb, trigger

PCR-360 Reports

addError, assign, barcode, loadReport

PCR-360 Utility

arrayToCsv, createFile, sendSystemMessage, callCustomEvent

arrayToCsv Function: Building CSV Data
arrayToCsv
Code Block
languagephp
string $this->arrayToCsv(array $data, string $delimiter = ',', string $enclosure = '"'): array 

$data: An array of values to convert to CSV

$delimiter: The character that is used to separate the values

$enclosure: Character used to encapsulate the data when the data contains the delimiter

Code Block
/*
Generate a CSV in the OUTBOUND directory 
named 'MY-OUTBOUND-FILE.csv' with the following content:

      a, b, c, 1, 2, 3
      d, e, f, 4, 5, 6
*/

$array = [
  ['a', 'b', 'c', 1, 2, 3],
  ['d', 'e', 'f', 4, 5, 6]
];
$csv = $this->arrayToCsv($array);
createFile Function

Users can use Custom Logic to create files directly onto the Inbound/Outbound directories for processing either by internal processes (Inbound) or external processes (Outbound).

Code Block
createFile(
createFile Function: Creating Inbound/Outbound Files
Code Block
languagephp
int|false $this->createFile(string $filename, string|array $content, string $location = 'OUTBOUND', bool $overwrite = false) : int|false

...

;

...

$content: The data to write to the file. String will be written as is, arrays will be written as if implode('', $content)

$location: The location in which to create the file. Supported values are INBOUND and OUTBOUND; any other value should cause the function to return false after logging an error

  • If the location is not supported, it will log an error and return false

  • If the overwrite is false and the file exists, it will log an error and return a false

  • If the location does not exist, it will be created

  • If an error occurs while writing the file, the error will be logged, and false will be returned

  • When the file is successfully written, the number of bytes written will be returned

Code Block
// Example
$bytesWritten = $this->createFile('MY-OUTBOUND-FILE.csv', $csv , 'OUTBOUND', true);

if ($bytesWritten === false) {
  // There was an error creating the file, handle that here
  // Check the error log for more details
} else {
  // The file was created successfully $bytesWritten will be the number of bytes written
}

String

is_numeric , strtolower , strtoupper , substr , stristr , strstr , stripos , strpos , strripos , strrpos , addslashes , chr , trim , ltrim , rtrim , str_replace , preg_match , preg_replace , preg_splitstr_pad , sprintf , substr_replace , strlen

Additional Functions

Contact PCR if you find a function that is not allowed, but would like to use. 

Validation functions

These functions are specific to Custom Validation

...

sendSystemMessage Function: Sending a System Message
Code Block
languagephp
bool $this->sendSystemMessage(string $subject, string $body, int $contactRecid, string $identifier);

PCR-360 Validation

setError, setMessage, setWarning

setError Function: Errors and Warning in Validation

Sets a validation error message. This messages output in the UI if the validation logic returns false. If this function is called multiple times, only the message from the last calls is displayed.

Code Block
languagephp
$this->setError ( string $message );
setWarning Function: Errors and Warning in Validation

Sets the validation warning message. This messages output in the UI only if the logic does not return false. If this function is called multiple times, only the message from the last calls is displayed.

Code Block
languagephp
$this->setWarning ( string $message );

Triggering Events

PCR_Event, trigger, attach, attachDb, detach, detachDb

In this example the GLA Replace Event is triggered with specific parameters. For detailed information on which Events can be triggered, and how to trigger those Events, please navigate to the Triggerable Events List page.

PCR_Event Functions
Code Block
languagephp
PCR_Event::attachDb("replace-gla", [
    "Application_Model_Gla_Gla" => "eventReplaceGla"
]);
PCR_Event::trigger("replace-gla", [
	"contact" => 12345,        // Contact RECID
    "users_recid" => 456,      // Users RECID
    "glaRecid" => [1111],      // Old GLA RECID
    "replaceGlaRecid" => 2222, // Replacement GLA RECID
    "setInactiveGla" => true,
    "comment" => "This is a comment",
]);
PCR_Event::detachDb("replace-gla");

...

The following function in the Custom Logic tab allows the User to call a Custom Event. This enables flexibility in having a single custom process gather data for different pieces of Custom Logic.

Code Block
mixed $this->callCustomEvent (string $eventIdentifier, array $data); 

// Example:
$callEventResult = $this->callCustomEvent('Event Identifier', $data ?? []);
if ($callEventResult > 10) {
  // Do something for 10 or more
} else {
  // Do something for 9 or less
}

Sending a System Message

A system message can be sent from Custom Logic using the following format:

...

languagephp

...

Regular Expressions (Perl-Compatible)

preg_filter, preg_grep, preg_last_error, preg_match, preg_match_all, preg_quote, preg_replace, preg_split

String

addslashes, bin2hex, chr, explode, html_entity_decode, htmlentities, htmlspecialchars, htmlspecialchars_decode, implode, ltrim, nl2br, number_format, rtrim, sprintf, str_contains, str_ends_with, str_getcsv, str_ireplace, str_pad, str_repeat, str_replace, str_shuffle, str_split, str_starts_with, strcasecmp, strip_tags, stripslashes, strtolower, strtoupper, substr_compare, substr_count, substr_replace, substr, stristr, strlen, stripos, strpos, strripos, strrpos, strstr, trim, wordwrap

URLs

base64_decode, base64_encode, get_headers, http_build_query, parse_url, rawurldecode, rawurlencode, urldecode, urlencode

Variable Handling

gettype, is_array, is_bool, is_float, is_int, is_iterable, is_numeric, is_object, is_string, isset

Additional Functions

Contact PCR if you find a function that is not allowed, but would like to use.