Pages

Monday, September 14, 2015

Management of Customer Master Data Using Corporation Number (Updating for addition)

If the Workflow platform possesses "Customer Master data", it will be convenient in various ways.

However, if everybody enters in "text form of free input", the names will be ambiguous such as;
  • "NTT", or "Nippon Telephone and Telegraph", or "enu-ti-ti (in Japanese characters)"
  • "Apple Inc." or "Apple, Inc." or even "Apple computer, Inc."
Anyway, input of corporate name would diverge... The work so called "Name identification" is so worthless to do.


The following is a "Trade Account Opening" Workflow.

At first glance, It's almost the same flow as the previous article (Credit Management flow), but it also has a mechanism which automatically updating "Customer Master data" (Business-Connections.xml), at the time of registering a new customer.

You can call this "Customer Master" into "Drop down list" or "Combo box which filters the list as you type" on other Workflows. That is, in any of the Workflow of "Quote approval flow", or "Invoicing flow", or "Inquiry correspondence flow", the corporate names to be input will always be "formal name" for it is selected from the "Customer Master data".

[Trade Account Opening]



Another excellence in this Workflow is that it has been given "Customer classification" in conjunction.

As you see in data format, all of corporate name is managed in the format of {6 characters of Customer classification}#{Corporation Number}#{URL of the corporate}. * The part of {Corporation Number}#{URL of the corporate} is the identifier (main key).

==6 characters of Customer classification
  • [1st character] A: west Japan, B: east Japan, C: local Japan, D: English-speaking countries, E: Non-English-speaking countries
  • [2nd character] 1: No service contract history, 2: On service contract, 3: Contract ended
  • [3rd character] 1: No possibility of Partner, 2: Prospective Partner, 3: Authorized Partner, 4: Silver Partner, 5: Gold Partner
  • [4th character] A: Over 10000 employees, B: 10000 or less, C: 5000 or less, D: 3000 or less, E: 1000 or less F: 500or less
  • [5th character] 0: (fewer Sales) - 9: (more Sales) (Decile of last 6 months)
  • [6th character] 0: within 1 year service period, 1: 1 year and less than 2

For instance, for a Sales person, there are advantages of;
  • Easy input of Formal corporate name,
  • Immediate confirmation on Customer's attribute. 

For a Business Process designer, it will be capable of using in 'Inputting interface' and 'Conditional Splitting', etc.

=Sample codes for [Script Task] (Server side)
//// == Retrieving == 
// M319 Options-XML: Options-XML file to which the Process Model Definitions Refer 
optionsList = itemDao.findAll("Business-Connections.xml", true); // return "List<ItemView>" 

//{6 characters of Customer classification}#{Corporation Number}#{URL of the corporate} and {Trade name} 
var corpCategory = data.get("10") + ""; 
var corpNumber = data.get("11") + ""; 
var corpURL = data.get("1") + ""; 
var corpName = data.get("2") + ""; 

//// == Calculating == 
var corpKey = corpNumber + "#" + corpURL + ""; 
var updateflag = 0; 

optionsNum = optionsList.size(); 
var value_id_list = ""; 
var display_label_list = ""; 
for (i=0; i < optionsNum; i++){ 
  if(corpKey == optionsList.get(i).getValue().substr(6) ){ // Data update 
    value_id_list += corpCategory + "#" + corpKey + "\n"; 
    display_label_list += corpName + "\n"; 
    updateflag = 1; 
  }else{ 
    value_id_list += optionsList.get(i).getValue() + "\n"; 
    display_label_list += optionsList.get(i).getDisplay() + "\n"; 
  } 
} 
if(updateflag == 0){ 
  value_id_list += corpCategory + corpKey + "\n"; 
  display_label_list += corpName + "\n"; 
} 

//// == Updating == 
retVal.put("12", value_id_list); 
retVal.put("13", display_label_list); 

=Sample codes for "Confirmation on Existing List" (Browser side)
<script type="text/javascript"> 
//if Clicked on <input type="button" value="view Category" id="myButton"> 
// display at <span id="corpinfo"></span>  

jQuery('#myButton').on('click',function(){ 
  var textStr = jQuery('input[name="data\\[9\\].selects"]').val(); // Searc select 
  jQuery( '#corpinfo' ).html("<font color=blue>" + textStr.substr(0, 6) + "</font>"); 
}); 
</script> 

=Sample code for "Corporate URL" (Browser side)
<script type="text/javascript"> 
/// "http://" or "https://" at the top will be removed when focus out from the form 
jQuery('input[name="data\\[1\\].input"]').on('change',function(){ 
//If text form value in Data Item ID "1" varies 
//(Detect focus out by change ) 

  var thisValue = jQuery(this).val(); 

  var myRegex = /^https:\/\/|^http:\/\//; // Begins with "http://" or "https://" (Regex) 
  var newValue = thisValue.replace( myRegex, "" ); // Remove matching part 
  // ex) "http://www.questetra.com" → "www.questetra.com" 

  var newValueLc = newValue.toLowerCase(); 
  // Replace to lowercase * Note that it will be applied also to other than domain part 

  jQuery('input[name="data\\[1\\].input"]').val( newValueLc ); 
}); 
</script> 

[Trade Account Opening:"1. Customer Registration" screen]

[Data Items list]


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

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