Skip to content

Instantly share code, notes, and snippets.

View jsmpros's full-sized avatar

jsmpros jsmpros

View GitHub Profile
@jsmpros
jsmpros / JSM_SETSEARCHOP.js
Created September 3, 2019 23:14
Set a search page field's search operator
if (!window.JSM) {
window.JSM = {};
}
// C-style include protection
if (!window.JSM.setSearchOperator) {
window.JSM.setSearchOperator = function () {
'use strict';
// The value for "between" is 9. Change this to your desired
@jsmpros
jsmpros / JSM_REQUIREJS_CONFIG.js
Created September 3, 2019 23:13
RequireJS Configuration for PeopleSoft
/**
* RequireJS global configuration. Include after RequireJS in branding settings
*
* @returns {undefined}
*/
(function () {
/**
* Build a URL based on the current component's URL
* @param {type} scriptId
* @returns {String} derived URL for JavaScript
{
"Employees": [{
"Name": {
"First": "Jim",
"Last": "Marion",
"Middle": "J"
},
"ID": 123456
}, {
"Name": {
@jsmpros
jsmpros / fluid-theme.css
Last active March 7, 2019 15:13
Sample PeopleSoft Fluid Branding Fragment
/* Change homepage background color */
#PT_WRAPPER.pt_homepage {
background-color: #eee /* f0f0f0*/;
}
/* Change tile border style and tile background color */
#PT_WRAPPER.pt_homepage .nuitile .nuilp {
border-radius: 0;
box-shadow: none;
border: 1px dashed;
@jsmpros
jsmpros / invoke-json-roles-script.ppl
Created June 29, 2018 22:53
PeopleCode sample of invoking a JavaScript JSON generator
Local string &script;
Local JavaObject &manager = CreateJavaObject("javax.script.ScriptEngineManager");
Local JavaObject &engine = &manager.getEngineByName("JavaScript");
SQLExec("SELECT CONTDATA FROM PSCONTENT WHERE CONTNAME = :1", HTML.JSM_CREATE_ROLE_JSON, &script);
REM ** The JavaScript expects the role name to be a global variable;
&engine.put("roleName", "Compensation Administrator");
&engine.eval(&script);
@jsmpros
jsmpros / ps-create-role-json.js
Created June 29, 2018 22:49
Javascript to create JSON from PeopleCode (role permission lists)
var result = (function() {
var ReflectiveArray = java.lang.reflect.Array;
var SQLExec = Packages.PeopleSoft.PeopleCode.Func.SQLExec;
var CreateSQL = Packages.PeopleSoft.PeopleCode.Func.CreateSQL;
var parms = ReflectiveArray.newInstance(java.lang.Class.forName("java.lang.Object"),
2 /* number of selected columns */);
var columns = ReflectiveArray.newInstance(java.lang.Class.forName("java.lang.Object"),
1 /* number of selected columns */);
parms[0] = roleName;
@jsmpros
jsmpros / json.org-read-json.ppl
Created June 29, 2018 22:38
Reading JSON in PeopleCode using json.org Java classes
Local JavaObject &jsonStr = CreateJavaObject("java.lang.String", &jsonText);
Local JavaObject &constructorArgTypes = CreateJavaObject("java.lang.Class[]", &jsonStr.getClass());
rem Local JavaObject &jsonClass = GetJavaClass("org.json.JSONObject");
rem Local JavaObject &constructor = &jsonObject.getClass().getConstructor(&constructorArgTypes);
Local JavaObject &jsonClass = CreateJavaObject("org.json.JSONObject").getClass();
Local JavaObject &constructor = &jsonClass.getConstructor(&constructorArgTypes);
Local JavaObject &parserObject = &constructor.newInstance(CreateJavaObject("java.lang.Object[]", &jsonStr));
Local JavaObject &roleJson = &jsonClass.cast(&parserObject);
@jsmpros
jsmpros / json.org-role-stringer.ppl
Created June 29, 2018 22:32
Using org.json.JSONStringer from PeopleCode
Local JavaObject &jsonRole = CreateJavaObject("org.json.JSONStringer");
Local string &roleName = "Compensation Administrator";
Local string &roleDescr;
Local string &permId;
Local string &jsonText;
Local SQL &perms;
REM ** Create JSON structure...;
SQLExec("SELECT DESCR FROM PSROLEDEFN WHERE ROLENAME = :1", &roleName, &roleDescr);
Local JavaObject &jsonRole = CreateJavaObject("org.json.JSONObject");
Local JavaObject &jsonPerms = CreateJavaObject("org.json.JSONArray");
Local string &roleName = "Compensation Administrator";
Local string &roleDescr;
Local string &permId;
Local string &jsonStr;
Local SQL &perms;
REM ** Create JSON structure...;
Local string &script;
Local JavaObject &manager = CreateJavaObject("javax.script.ScriptEngineManager");
Local JavaObject &engine = &manager.getEngineByName("JavaScript");
SQLExec("SELECT CONTDATA FROM PSCONTENT WHERE CONTNAME = :1", HTML.JSM_READ_XLS_JS, &script);
REM ** Tell JavaScript what file to process;
&engine.put("fileName", "c:/temp/roles.xlsx");
&engine.eval(&script);