Purpose:
Required RFC authorizations for 'RFC_READ_TABLE' function module.
1. S_RFC: RFC_TYPE=FUGR, RFC_NAME=SYST, ACTVT=16
Note: Needed for sapnwrfc which is the newer RFC library from SAP
2. S_TABU_NAM: ACTVT=03, TABLE=SRGBTBREL
Note: Needed to check if attachment exists for work order or not (Table name will change as needed)
Liquid UI Code:
----------------------------------------------------------------------------------------------------------------------------------------------
Script File Name: SAPLCORU.E3200.sjs // IW41 Actual Data
----------------------------------------------------------------------------------------------------------------------------------------------
// Load the generic functions
load("stringFunctions.sjs");
// User Interface
pushbutton([TOOLBAR], "@4P@Attachments", '?', {'size':[2,32], 'process':iw41_viewAttachments});
// Related functions
// Function to open attachment list if it exists
function iw41_viewAttachments(){
println("\n ==== Entered function iw41_viewAttachments ===\n");
set("V[z_iw37n_order]","&F[Order]");
var result = attachmentListExists(z_iw37n_order,12);
if(!result){
return("E: No attachments exists");
} else {
setcursor("F[Order]");
enter('/2');
}
onscreen 'SAPLCOIH.3000'
enter({'control':'GOSCONTAINERCTRL.Toolbar','item':'%GOS_TOOLBOX;75;89','event':2}); //Object for services
onscreen 'SAPLSWUG.0100'
set("cell[TABLE,0,1]","X")
enter();
onscreen 'SAPLCOIH.3000'
enter({'control':'GOSCONTAINERCTRL.Toolbar','item':'%GOS_VIEW_ATTA','event':1}); //Attachment List
}
// Function uses RFC call to check if attachment list exists for order
function attachmentListExists(strDocNum, nPadding, strYear){
println("\n ==== Entered function attachmentListExists ===\n");
var z_in_query_table = "SRGBTBREL";
if(hasValue(strYear)){
var z_options = ["INSTID_A = '" + (padString(strDocNum,nPadding,PADDING_LEFT,"0")) + strYear + "'"];
} else {
var z_options = ["INSTID_A = '" + (padString(strDocNum,nPadding,PADDING_LEFT,"0")) + "'"];
}
var z_fields = ["INSTID_B"];
var z_InstanceID = [];
var bResult = false;
rfcResult = call("RFC_READ_TABLE", {"in.QUERY_TABLE":"z_in_query_table",
"table.OPTIONS":"z_options",
"table.FIELDS":"z_fields",
"table.DATA(width:3000)":"z_InstanceID"});
println("=====>> Check RFC_READ_TABLE Exception="+rfcResult.exception+"<==");
println("=====>> Check z_InstanceID.length="+z_InstanceID.length+"<==");
//FOL18 4 EXT44000000000134
if(z_InstanceID.length>0){
bResult = true;
}
return bResult;
}
See attachments for code samples!