· 6 years ago · Jan 29, 2020, 10:37 PM
1 buildISPStructure: function(source, log) {
2 // 1. CUSTOMER check
3 var customerGR = this.getCustomerByExternalID(source.getValue("u_customer_id"));
4 gs.info("customer ID: "+customerGR.getUniqueValue());
5 /*if (this.getCustomerByExternalID(source.getValue("u_customer_id"))) {
6 //log.error(gs.getMessage('x_att2_isp.transform.error.customer_not_found', source.u_customer_ext_id));
7 return false;
8 }*/
9
10 var cImpGR = this.getCustomerImplementationByCustomer(customerGR.getUniqueValue());
11 gs.info("customer implementation ID: "+cImpGR.getUniqueValue());
12
13 // 2. ORDER check
14 var pimOrderGR = null;
15 var pimOrderTable = "";
16
17 var extOrderType = "";
18 var extOrderID = "";
19
20 var parentExtOrderType = "";
21 var parentExtOrderID = "";
22
23 if (gs.nil(source.getValue("u_sr"))) {
24 // CR order
25 pimOrderTable = this.TBL_CR;
26
27 extOrderType = "client_request";
28 extOrderID = source.getValue("u_cr");
29 } else {
30 // SR order
31 pimOrderTable = this.TBL_SR;
32
33 extOrderType = "service_request";
34 extOrderID = source.getValue("u_sr");
35
36 parentExtOrderType = "client_request";
37 parentExtOrderID = source.getValue("u_cr");
38 }
39
40 var extOrderAttr = {
41 correlation_id: extOrderID,
42 u_type: extOrderType
43 };
44
45 gs.info("pimOrderTable: "+pimOrderTable);
46 gs.info("extOrderType: "+extOrderType);
47 gs.info("extOrderID: "+extOrderID);
48 gs.info("parentExtOrderType: "+parentExtOrderType);
49 gs.info("parentExtOrderID: "+parentExtOrderID);
50
51 // Order does not exist and must be created
52 if (gs.nil(this.getOrderByExternalOrder(extOrderAttr))) {
53 var orderAttr = {
54 short_description: 'Dummy text from Import - '+extOrderType+' - '+extOrderID
55 };
56
57 // Find correct parent order
58 if (!gs.nil(parentExtOrderType) && !gs.nil(parentExtOrderID)) {
59 var parentExtOrderAttr = {
60 correlation_id: parentExtOrderID,
61 u_type: parentExtOrderType
62 };
63 var parentOrderGR = this.getOrderByExternalOrder(parentExtOrderAttr);
64
65 if (!gs.nil(parentOrderGR)) {
66 orderAttr['parent'] = parentOrderGR.getUniqueValue();
67 }
68 }
69
70 // Create order
71 orderAttr['u_customer_implementation'] = cImpGR.getUniqueValue();
72 orderAttr['u_customer'] = customerGR.getUniqueValue();
73
74 var orderGR = this.setOrder(orderAttr);
75
76 // Load data from PIM order tables if exists
77 if (extOrderType == "client_request") {
78 pimOrderGR = this.getClientRequestOrder(extOrderID);
79 } else if (extOrderType == "service_request") {
80 pimOrderGR = this.getServiceRequestOrder(extOrderID);
81 }
82
83 // Create external order (with reference to PIM table if exists)
84 if (!gs.nil(pimOrderGR)) {
85 extOrderAttr['u_external_order'] = pimOrderGR.getUniqueValue();
86 extOrderAttr['u_external_order_table'] = pimOrderTable;
87 }
88
89 extOrderAttr['u_order'] = orderGR.getValue('sys_id');
90
91 var extOrderGR = this.setExternalOrder(extOrderAttr);
92 }
93 },