Pages

Monday, February 8, 2016

Episode 469: Address Change Notice (w/Auto-updating of Employee Master Data)

Want to set up "Employee Master data"!

However, the work of the Human Resources Department is not mean that it is sufficient to manage only the "incumbents". Information of "seconded the people" and "retired people" must also be managed. Yet, they also want to precisely maintain the "List of incumbent" (employee master) to be used in such business system.

And the management of Employee Master data in "Excel file" has been pushed to its limit already.
  • Basic information (Employee Master): Id number, Email address, Commonly known name, Date of hire
  • Detailed information (Statutory management items): Family registration Name, Date of birth, Gender, Highest educational attainment, Employment history, Emergency contacts, Retirement date, etc.

The following is a Business flow for handling "Newly application or Notification for changes in Name, Address, Phone number, etc."

It is necessary to get immediate report not only at the time of joining, also when the name has changed, or the address has changed, or the telephone number has been changed. Its excellent point is the function that allows automatic update on the "Employee Master data" of the Workflow platform as necessary. And the "Employee master data" which is to be updated automatically, will be utilized in making a scheme of, for example, "How to send a notification e-mail to employees who do not have a login account to the Workflow foundation".

[Employee Information Acceptance]

It should be noted that, in case of using the data for e.g. when the HR Department issues a "Certificate of Employment" or a "Retirement certificate", they will find the latest application from the relevant person. In other words, they do not purposely create the "Latest list" such as "Roster of Workers". It is a policy that to store applied information as it is, and never to access until needed.

(Of course, you are able to create a beautiful "Worker Roster" if you downloaded the data using [Excel download function] of the Workflow system and sorted it. However, that document is nothing but a Risk in this time of the world. This is the idea to do above.)

Incidentally, in Japanese low, ("Article 107 (Roster of Workers) of Labor Standards Act" and "Article 53, of Ordinance for Enforcement of the Labor Standards Act, it is defined as obligations of management on;
  • Name
  • Date of birth
  • Personal history
  • Gender
  • Address
  • Type of work in which the worker is engaged
  • Date of hiring
  • Date and cause of retirement
  • Date and cause of death
Moreover, Employers shall preserve the "Rosters of Workers, Wage ledgers and important documents concerning hiring, dismissal, accident compensation, Wages, and other matters of labor relations" for a period of 3 years. (Article 109)

However, on the other hand, it should be decided the policy in each company for what kind of format the personal information should be managed, for such as
  • Family registration name?
  • Email address?
  • phone number?
  • Credentials?

That is, it can be said that it should be defined in terms of defining the policy, such as what kind of employee welfare to carry out, or what kind of contact system to build, or what kind of qualification support system to arrange. (And, it corresponds to so-called "handling of personal information" (handling of the Employees' Personal Information).)

[Reception of Personal Information of Employee:"1. Addition / Updating of Employee's Information" screen]

▼ Setting sample for [Retrieval of Master data] (Server-side JavaScript)
- Input: XML file registered in [Common Files]
- Output: Output to the table type data, output a TSV text to String Type data
//// == Retrieving == 
// M319 Options-XML:  
// Register an Options-XML file to which the Process Model Definitions Refer to 
// return "List<ItemView>"  
optionsList = itemDao.findAll("staff-master.xml", true);  
// Employee number#Commonly known name#Phonetic of Commonly known name #Date of hire = Email address 

//// == Calculating == 
optionsNum = optionsList.size(); 

var tmpTable = new com.questetra.bpms.core.model.formdata.ListArray(); // Table type 
var tsvtext = ""; // String type multiple lines 

for (i=0; i < optionsNum; i++){ 
  var tmpRow = new com.questetra.bpms.core.model.formdata.ListArray.ListRow(); // Added line 
  var values = optionsList.get(i).getValue() + ""; 
  var arr = values.split("#"); 
  tmpRow.addCol( arr[0] ); 
  tmpRow.addCol( arr[1] ); 
  tmpRow.addCol( arr[2] ); 
  tmpRow.addCol( arr[3] ); 
  tmpRow.addCol( optionsList.get(i).getDisplay() ); 
  tmpTable.addRow( tmpRow ); // Added line

tsvtext += arr[0] + "\t"; 
tsvtext += arr[1] + "\t"; 
tsvtext += arr[2] + "\t"; 
tsvtext += arr[3] + "\t"; 
tsvtext += optionsList.get(i).getDisplay() + "\n"; 
} 


//// == Updating == 
retVal.put("24", tmpTable ); 
retVal.put("25", tsvtext ); 
retVal.put("23", new java.sql.Date(Date.now())); 


▼ Setting sample for [Generation of list] (Server-side)
- Input: Contents of Table type data item
- Output: Output texts to two String type data items
//// == Retrieving == 
// mytable: com.questetra.bpms.core.model.formdata.ListArray 
var mytable = data.get("24"); // Table type 

//// == Calculating == 
// Employee number Commonly known name Phonetic of Commonly known name  Date of hire Email address 
// Employee number#Commonly known name#Phonetic of Commonly known name #Date of hire = Email address 
var i=0; 
var n = mytable.size(); 
var value_id_list = ""; 
var display_label_list = ""; 
for (i=0; i < n; i++){ 
  value_id_list += mytable.get(i, 0) + "#"; 
  value_id_list += mytable.get(i, 1) + "#"; 
  value_id_list += mytable.get(i, 2) + "#"; 
  value_id_list += mytable.get(i, 3) + "\n"; 
  display_label_list += mytable.get(i, 4) + "\n"; 
} 

//// == Updating == 
retVal.put("26", value_id_list); 
retVal.put("27", display_label_list); 


▼ Setting sample for [TSV uptake] (Server-side)
- Input: String type multiple lines data (5 items in a line separated with "Tab")
- Outpu: Updating Table type data
* Uptake is possible by Copy & paste from MS-Excel or Google-spreadsheet
//// == Retrieving == 
var tsvtext = data.get("25") + ""; // Retrieving text data of TSV 

//// == Calculating == 
var tmpTable = new com.questetra.bpms.core.model.formdata.ListArray(); // Table type data 
var lineArray = tsvtext.split("\n");  // Divided for each line break, store in string[] array 
for (var i=0; i < lineArray.length; i++){ 
  var tmpRow = new com.questetra.bpms.core.model.formdata.ListArray.ListRow(); // Added line (horizontal) 
  var cellstrArray = lineArray[i].split("\t");  // Divided for each Tab, store 
  tmpRow.addCol( cellstrArray[0] ); 
  tmpRow.addCol( cellstrArray[1] ); 
  tmpRow.addCol( cellstrArray[2] ); 
  tmpRow.addCol( cellstrArray[3] ); 
  tmpRow.addCol( cellstrArray[4] ); 
  tmpTable.addRow( tmpRow );  // Added line
} 

//// == Updating == 
retVal.put("24", tmpTable ); 

[Data Items list]

[Free Download]
<Similar Models>
<<Related Article>>

[Japanese Entry (ε’Œζ–‡θ¨˜δΊ‹)]