Files
d.velop/Assmann/81_java_dbs_invoiceworkflow_v100.jpl
2024-06-17 16:49:41 +02:00

188 lines
8.1 KiB
Plaintext

////////////////////////////////////////////////////////////////////////////////
// Hook for dbs | invoice
// => Java-Functions
// File-Encoding: UTF-8 without BOM( Test: ü,ä,ö )
//------------------------------------------------------------------------------
// Created/Edited | Description
//------------------------------------------------------------------------------
// 16.01.2017 | dbs | invoice workflow 1.0.0.0
// 06.11.2017 tott | Write State mit Langem Usernamen
////////////////////////////////////////////////////////////////////////////////
global gDBS_RET_CODE_SERVLET_JAVA = ""
global gDBS_RET_MSG_SERVLET_JAVA = ""
//---------------------------------------------------------------------------------------------------------------------------------------------------
// write current state of workflow to erp interface via java class
//---------------------------------------------------------------------------------------------------------------------------------------------------
proc write_state( pDocId, wfUser, wfState, wfStep, wfStepLvl, wfWebServiceURL )
{
vars lReturnCode, lReturnValue
vars lCurrentTimestamp = getCurrentTimestamp()
vars lSplittedUsers // Number of returned values of function string_split
vars lUsersString = wfUser // string to be splitted
vars lCharSplitter = ";" // split character
vars lCount, h_ReturnValue
vars lUsers
gDBS_RET_CODE_SERVLET_JAVA = ""
gDBS_RET_MSG_SERVLET_JAVA = ""
call api_log_info ("Start Function Write State")
lSplittedUsers = api_function ("string_split", lUsersString, lCharSplitter)
// Ergebnisausgabe
if( lSplittedUsers > 0 )
{
call api_log_info ("String wfUsers was splitted in :lSplittedUsers Strings.")
for lCount = 1 while( lCount <= lSplittedUsers ) step 1
{
// Username anhand ; Splitten und Langnamen ermitteln
HIDE_API_ERROR_ONCE = "1"
h_ReturnValue = api_function ("user_get_data", api_splitted_string[ lCount ])
if ( h_ReturnValue == 0 )
{
// das Komma erst setzen wenn ein User durch
if( lCount != 1 )
{
lUsers = lUsers ## "; "
}
// Umlaute umbennnen, da es sonst zu UTF8 Problemen kommt
h_ReturnValue = api_function ("string_replace", api_user_realname, "ä", "ae" )
h_ReturnValue = api_function ("string_replace", api_converted_string, "ü", "ue" )
h_ReturnValue = api_function ("string_replace", api_converted_string, "ö", "oe" )
h_ReturnValue = api_function ("string_replace", api_converted_string, "Ä", "Ae" )
h_ReturnValue = api_function ("string_replace", api_converted_string, "Ü", "Ue" )
h_ReturnValue = api_function ("string_replace", api_converted_string, "Ö", "Oe" )
// Username Lang speichern
lUsers = lUsers ## api_converted_string
}
}
}
call api_clear_document_context()
lReturnValue = api_function ("attribute_get_all", pDocId, "")
if( lReturnValue == 0 )
{
// -----------------------------------------------------------
// add request params
lReturnValue = api_function ("java_add_param", wfWebServiceURL) // wfWebServiceURL
lReturnValue = api_function ("java_add_param", gGMF_CONFIG_INTERFACE)
lReturnValue = api_function ("java_add_param", "writeState")
lReturnValue = api_function ("java_add_param", "ERPID" ## "|" ## pDocId) // pDocId api_doc_field[gDDF_ERP_ID])
lReturnValue = api_function ("java_add_param", "SYSID" ## "|" ## api_doc_field[gDDF_SYSTEM_ID])
lReturnValue = api_function ("java_add_param", "CLIENT" ## "|" ## api_doc_field[gDDF_CLIENT])
lReturnValue = api_function ("java_add_param", "COMPANY_CODE" ## "|" ## api_doc_field[gDDF_COMPANY_CODE])
lReturnValue = api_function ("java_add_param", "TIME_STAMP" ## "|" ## lCurrentTimestamp)
lReturnValue = api_function ("java_add_param", "USER" ## "|" ## wfUser)
lReturnValue = api_function ("java_add_param", "STATE" ## "|" ## wfState)
lReturnValue = api_function ("java_add_param", "STEP" ## "|" ## wfStep)
lReturnValue = api_function ("java_add_param", "STEPLVL" ## "|" ## wfStepLvl)
lReturnCode = api_function ("java_call_static", "com/dvelop/decs/erp/servlet/javacall/DecsERPServletConnector", "executePost")
if( lReturnCode != 0 || gDBS_RET_CODE_SERVLET_JAVA != 0 )
{
call api_log_info( "Error while creating xml request: " ## lReturnCode )
call api_log_info( "Servlet returned error code: " ## gDBS_RET_CODE_SERVLET_JAVA )
call api_log_info( "Servlet returned error message: " ## gDBS_RET_MSG_SERVLET_JAVA )
return gERR_ERP_SVLT_WRITE_STATE
}
else
{
call api_log_info( "Created xml request for write_state(): " ## lReturnCode )
return 0
}
}
return 0
} // end of write_state
//---------------------------------------------------------------------------------------------------------------------------------------------------
// write current users of workflow to erp interface via java class
//---------------------------------------------------------------------------------------------------------------------------------------------------
proc write_user( pDocId, wfUsers, wfState, wfStep, wfStepLvl, wfWebServiceURL )
{
vars lReturnCode, lReturnValue
gDBS_RET_CODE_SERVLET_JAVA = ""
gDBS_RET_MSG_SERVLET_JAVA = ""
call api_log_info ("START write_user.")
call api_clear_document_context()
lReturnValue = api_function ("attribute_get_all", pDocId, "")
if( lReturnValue == 0 )
{
// Variablendeklaration
vars lSplittedUsers // Number of returned values of function string_split
vars lUsersString = wfUsers // string to be splitted
vars lCharSplitter = ";" // split character
// call string_split
lSplittedUsers = api_function ("string_split", lUsersString, lCharSplitter)
// Ergebnisausgabe
if( lSplittedUsers > 0 )
{
call api_log_info ("String wfUsers was splitted in :lSplittedUsers Strings.")
// -----------------------------------------------------------
// add request params
lReturnValue = api_function ("java_add_param", wfWebServiceURL) // wfWebServiceURL
lReturnValue = api_function ("java_add_param", gGMF_CONFIG_INTERFACE)
lReturnValue = api_function ("java_add_param", "writeUser")
lReturnValue = api_function ("java_add_param", "ERPID" ## "|" ## api_doc_field[gDDF_ERP_ID])
lReturnValue = api_function ("java_add_param", "SYSID" ## "|" ## api_doc_field[gDDF_SYSTEM_ID])
lReturnValue = api_function ("java_add_param", "CLIENT" ## "|" ## api_doc_field[gDDF_CLIENT])
lReturnValue = api_function ("java_add_param", "COMPANY_CODE" ## "|" ## api_doc_field[gDDF_COMPANY_CODE])
lReturnValue = api_function ("java_add_param", "STEP" ## "|" ## wfStep)
lReturnValue = api_function ("java_add_param", "STEPLVL" ## "|" ## wfStepLvl)
// start of for-loop --------------------------------------------------------------
vars lCount // counter for loop
vars lCurrentTimestamp = getCurrentTimestamp()
lReturnValue = api_function ("java_add_param", "USERS_TIME_STAMP" ## "|" ## lCurrentTimestamp)
lReturnValue = api_function ("java_add_param", "USERS_STATE" ## "|" ## wfState)
for lCount = 1 while( lCount <= lSplittedUsers ) step 1
{
lReturnValue = api_function ("java_add_param", "USERS_USER" ## "|" ## api_splitted_string[ lCount ])
}
// end of for-loop ---------------------------------------------------------------
lReturnCode = api_function ("java_call_static", "com/dvelop/decs/erp/servlet/javacall/DecsERPServletConnector", "executePost")
if( lReturnCode != 0 || gDBS_RET_CODE_SERVLET_JAVA != 0 )
{
call api_log_info( "Error while creating xml request: " ## lReturnCode )
call api_log_info( "Servlet returned error code: " ## gDBS_RET_CODE_SERVLET_JAVA )
call api_log_info( "Servlet returned error message: " ## gDBS_RET_MSG_SERVLET_JAVA )
return gERR_ERP_SVLT_WRITE_USER
}
else
{
call api_log_info ( "Created xml request for write_user(): " ## lReturnCode )
}
}
else
{
if( lSplittedUsers < 0 )
{
call api_log_error ("No users could be determined with string_split in write_user()! Errorcode was :lSplittedUsers.")
}
}
return 0
}
else
{
call api_log_error ("Errorcode :lReturnValue was returned!")
}
}//end of write_user