Thanks to visit codestin.com
Credit goes to www.scribd.com

0% found this document useful (0 votes)
161 views36 pages

Sifutil

This Java code defines a SIFUtil class that provides methods for interacting with a Siperian client to access a SIF data hub. The getSIFClient method initializes a Siperian client by setting properties like the URL, ORS ID, username, and password. The getPendingCustomer method searches the hub for a pending customer record matching a given ID, then checks associated tables for pending records to potentially promote.

Uploaded by

Amrita Das
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
161 views36 pages

Sifutil

This Java code defines a SIFUtil class that provides methods for interacting with a Siperian client to access a SIF data hub. The getSIFClient method initializes a Siperian client by setting properties like the URL, ORS ID, username, and password. The getPendingCustomer method searches the hub for a pending customer record matching a given ID, then checks associated tables for pending records to potentially promote.

Uploaded by

Amrita Das
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
You are on page 1/ 36

package com.pfg.idd.customsifapi.

util;

import java.math.BigInteger;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collection;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.Properties;

import org.apache.log4j.Logger;

import com.pfg.idd.customsifapi.constant.ItemConstants;
import com.siperian.bdd.userexits.datamodel.BDDObject;
import com.siperian.sif.client.SiperianClient;
import com.siperian.sif.message.Field;
import com.siperian.sif.message.HubStateIndicator;
import com.siperian.sif.message.MatchType;
import com.siperian.sif.message.Parameter;
import com.siperian.sif.message.Password;
import com.siperian.sif.message.Record;
import com.siperian.sif.message.RecordKey;
import com.siperian.sif.message.RecordState;
import com.siperian.sif.message.SiperianObjectType;
import com.siperian.sif.message.XrefKey;
import com.siperian.sif.message.mrm.DeleteRequest;
import com.siperian.sif.message.mrm.DeleteResponse;
import com.siperian.sif.message.mrm.GetRequest;
import com.siperian.sif.message.mrm.GetResponse;
import com.siperian.sif.message.mrm.GetXrefForEffectiveDateRequest;
import com.siperian.sif.message.mrm.GetXrefForEffectiveDateResponse;
import com.siperian.sif.message.mrm.PromotePendingXrefsRequest;
import com.siperian.sif.message.mrm.PromotePendingXrefsResponse;
import com.siperian.sif.message.mrm.PutRequest;
import com.siperian.sif.message.mrm.PutResponse;
import com.siperian.sif.message.mrm.RestoreRequest;
import com.siperian.sif.message.mrm.RestoreResponse;
import com.siperian.sif.message.mrm.SearchMatchRequest;
import com.siperian.sif.message.mrm.SearchMatchResponse;
import com.siperian.sif.message.mrm.SearchQueryRequest;
import com.siperian.sif.message.mrm.SearchQueryResponse;
import com.siperian.sif.message.mrm.SetRecordStateRequest;
import com.siperian.sif.message.mrm.SetRecordStateResponse;

/**
* The Class SIFUtil.
*/
public class SIFUtil
{
public static SiperianClient getSIFClient()
{
// initialize a SIF client
Properties sifClientProps = new Properties();
sifClientProps.setProperty("siperian-client.protocol", "http");
sifClientProps.setProperty("http.call.url",
ItemConstants.UPGRADE_UAT_CMX);
sifClientProps.setProperty("siperian-client.orsId",
ItemConstants.UPGRADE_UAT_ORS_ID);
sifClientProps.setProperty("siperian-client.username","adas");
sifClientProps.setProperty("siperian-client.securityPayload","");
SiperianClient sifClient =
SiperianClient.newSiperianClient(sifClientProps);
return sifClient;
}

public static void getPendingCustomer(String PFGCustID, String action){


SiperianClient sifClient = getSIFClient();

boolean noPromoteFlag = true;

SearchQueryRequest request = new SearchQueryRequest();


SearchQueryResponse response = new SearchQueryResponse();

Password password = new Password();


password.setPassword("A8563514C5769CD5");
password.setEncrypted(true);
request.setUsername("sifuser");
request.setPassword(password);

request.setSiperianObjectUid(SiperianObjectType.BASE_OBJECT.makeUid("C_B_PARTY"));
request.setFilterCriteria("PFG_PARTY_ID = ? AND BO_CLASS_CODE =
'Customer' AND IS_SAVE = 'U'"); //for promote: AND IS_SAVE = 'U'
ArrayList<Parameter> params = new ArrayList<Parameter>();
params.add(new Parameter(PFGCustID));
request.setFilterParameters(params);

ArrayList<HubStateIndicator> recordStates = new


ArrayList<HubStateIndicator>();
recordStates.add(HubStateIndicator.ACTIVE);
recordStates.add(HubStateIndicator.PENDING);
request.setRecordStates(recordStates);

response = (SearchQueryResponse) sifClient.process(request);

List<?> recList = response.getRecords();

if (recList != null && recList.size() > 1){


System.out.println("More than one customer with pfg party id " +
PFGCustID);
}
else if (recList != null && recList.size() == 1)
{
Record rec = (Record) recList.get(0);

Field field = rec.getField("ROWID_OBJECT");


String rowid = field.getValue().toString().trim();

request = new SearchQueryRequest();


response = new SearchQueryResponse();

password = new Password();


password.setPassword("A8563514C5769CD5");
password.setEncrypted(true);
request.setUsername("sifuser");
request.setPassword(password);

request.setSiperianObjectUid(SiperianObjectType.XREF.makeUid("C_B_PARTY"));
request.setFilterCriteria("ROWID_OBJECT = ?");

params = new ArrayList<Parameter>();


params.add(new Parameter(rowid));
request.setFilterParameters(params);

recordStates = new ArrayList<HubStateIndicator>();


recordStates.add(HubStateIndicator.PENDING);
request.setRecordStates(recordStates);

response = (SearchQueryResponse) sifClient.process(request);

recList = response.getRecords();

if (recList != null && recList.size() == 1){


System.out.println("Found pending record in C_B_Party_Xref:
");

rec = new Record();


rec = (Record) recList.get(0);

String interaction =
rec.getField("INTERACTION_ID").getValue().toString().trim();
String pkeysrc =
rec.getField("PKEY_SRC_OBJECT").getValue().toString().trim();
String rowidxref =
rec.getField("ROWID_XREF").getValue().toString().trim();
String syst =
rec.getField("ROWID_SYSTEM").getValue().toString().trim();

System.out.println("Interaction id: " + interaction + "


pkey src: " + pkeysrc + " rowid xref: " + rowidxref);

if(action.equalsIgnoreCase("promote")){
PromoteQuery("C_B_PARTY", interaction, pkeysrc,
rowidxref, syst);
noPromoteFlag = false;
}
}

//else{
//System.out.println("No pending xrefs in C_B_Party. So
check Customer Dtl and all other tables.");

ArrayList<String> tables = new ArrayList<String>();


tables.add("C_B_CUSTOMER_DTL");
tables.add("C_B_RL_ALTERNATE_ID");
tables.add("C_B_RL_PARTY_TO_PARTY");
tables.add("C_B_PARTY_EXEMPT");
tables.add("C_B_RL_PARTY_OPCO");
tables.add("C_B_RL_PARTY_ADDR");

ArrayList<String> offTables = new ArrayList<String>();


offTables.add("C_B_CUST_ADDR_DTL");
offTables.add("C_B_DELV_WINDOW");
offTables.add("C_B_CONCEPT_PARTYADDR");
offTables.add("C_B_PARTY_BANK");

String addrIDSH = "", addrIDBI = "", rowIDSH = "";

for(String table: tables){

request = new SearchQueryRequest();


response = new SearchQueryResponse();

password = new Password();


password.setPassword("A8563514C5769CD5");
password.setEncrypted(true);
request.setUsername("sifuser");
request.setPassword(password);

request.setSiperianObjectUid(SiperianObjectType.BASE_OBJECT.makeUid(table));
request.setFilterCriteria("PARTY_ID = ?");

params = new ArrayList<Parameter>();


params.add(new Parameter(rowid));
request.setFilterParameters(params);

recordStates = new ArrayList<HubStateIndicator>();


recordStates.add(HubStateIndicator.PENDING);
recordStates.add(HubStateIndicator.ACTIVE);
request.setRecordStates(recordStates);

response = (SearchQueryResponse)
sifClient.process(request);

recList = response.getRecords();

for(Iterator iter = recList.iterator();


iter.hasNext();){
rec = new Record();
rec = (Record) iter.next();

String rid =
rec.getField("ROWID_OBJECT").getValue().toString().trim();

if(table.equalsIgnoreCase("C_B_RL_PARTY_ADDR"))
{

if(rec.getField("REL_TYPE_CD").getValue().toString().trim().equalsIgnoreCase("BI"))
addrIDBI =
rec.getField("ADDRESS_ID").getValue().toString().trim();

if(rec.getField("REL_TYPE_CD").getValue().toString().trim().equalsIgnoreCase("SH"))
{
addrIDSH =
rec.getField("ADDRESS_ID").getValue().toString().trim();
rowIDSH = rid;
}
}
request = new SearchQueryRequest();
response = new SearchQueryResponse();

password = new Password();


password.setPassword("A8563514C5769CD5");
password.setEncrypted(true);
request.setUsername("sifuser");
request.setPassword(password);

request.setSiperianObjectUid(SiperianObjectType.XREF.makeUid(table));
request.setFilterCriteria("ROWID_OBJECT = ?");

params = new ArrayList<Parameter>();


params.add(new Parameter(rid));
request.setFilterParameters(params);

recordStates = new
ArrayList<HubStateIndicator>();
recordStates.add(HubStateIndicator.PENDING);
request.setRecordStates(recordStates);

response = (SearchQueryResponse)
sifClient.process(request);

recList = response.getRecords();

if (recList != null && recList.size() == 1){


System.out.println("Found pending record
in xref of table: " + table);

rec = new Record();


rec = (Record) recList.get(0);

String interaction =
rec.getField("INTERACTION_ID").getValue().toString().trim();
String pkeysrc =
rec.getField("PKEY_SRC_OBJECT").getValue().toString().trim();
String rowidxref =
rec.getField("ROWID_XREF").getValue().toString().trim();
String syst =
rec.getField("ROWID_SYSTEM").getValue().toString().trim();

System.out.println("Table: " + table + "


Interaction id: " + interaction + " pkey src: " + pkeysrc + " rowid xref: " +
rowidxref);

if(action.equalsIgnoreCase("promote")){
PromoteQuery(table, interaction,
pkeysrc, rowidxref, syst);
noPromoteFlag = false;

if(table.equalsIgnoreCase("C_B_CUSTOMER_DTL") &&
rec.getField("STATUS_CD").getValue() != null &&

rec.getField("STATUS_CD").getValue().toString().trim().equalsIgnoreCase("I"))
{
//if party inactive, must
make ship to address & associated opco inactive too
System.out.println(PFGCustID
+ " - make SH address & opco inactive as well");
}

if(table.equalsIgnoreCase("C_B_RL_PARTY_ADDR") &&
rec.getField("STATUS_CD").getValue() != null &&

rec.getField("STATUS_CD").getValue().toString().trim().equalsIgnoreCase("I"))
{
//if address inactive, must
make ship to associated opco inactive too
System.out.println(PFGCustID
+ " - make opco inactive as well");
}
}

}
}
}

request = new SearchQueryRequest();


response = new SearchQueryResponse();

password = new Password();


password.setPassword("A8563514C5769CD5");
password.setEncrypted(true);
request.setUsername("sifuser");
request.setPassword(password);

request.setSiperianObjectUid(SiperianObjectType.XREF.makeUid("C_B_ADDRESS"));
request.setFilterCriteria("ROWID_OBJECT = ?");

params = new ArrayList<Parameter>();


params.add(new Parameter(addrIDBI));
request.setFilterParameters(params);

recordStates = new ArrayList<HubStateIndicator>();


recordStates.add(HubStateIndicator.PENDING);
request.setRecordStates(recordStates);

response = (SearchQueryResponse)
sifClient.process(request);

recList = response.getRecords();

if (recList != null && recList.size() == 1){

System.out.println("Found pending record in xref of


C_B_ADDRESS");

rec = new Record();


rec = (Record) recList.get(0);

String interaction =
rec.getField("INTERACTION_ID").getValue().toString().trim();
String pkeysrc =
rec.getField("PKEY_SRC_OBJECT").getValue().toString().trim();
String rowidxref =
rec.getField("ROWID_XREF").getValue().toString().trim();
String syst =
rec.getField("ROWID_SYSTEM").getValue().toString().trim();

System.out.println("Table: C_B_ADDRESS Interaction


id: " + interaction + " pkey src: " + pkeysrc + " rowid xref: " + rowidxref);

if(action.equalsIgnoreCase("promote")){
PromoteQuery("C_B_ADDRESS", interaction,
pkeysrc, rowidxref, syst);
noPromoteFlag = false;
}
}

request = new SearchQueryRequest();


response = new SearchQueryResponse();

password = new Password();


password.setPassword("A8563514C5769CD5");
password.setEncrypted(true);
request.setUsername("sifuser");
request.setPassword(password);

request.setSiperianObjectUid(SiperianObjectType.XREF.makeUid("C_B_ADDRESS"));
request.setFilterCriteria("ROWID_OBJECT = ?");

params = new ArrayList<Parameter>();


params.add(new Parameter(addrIDSH));
request.setFilterParameters(params);

recordStates = new ArrayList<HubStateIndicator>();


recordStates.add(HubStateIndicator.PENDING);
request.setRecordStates(recordStates);

response = (SearchQueryResponse)
sifClient.process(request);

recList = response.getRecords();

boolean addrPromoteFlag = false;

if (recList != null && recList.size() == 1){

System.out.println("Found pending record in xref of


C_B_ADDRESS");

rec = new Record();


rec = (Record) recList.get(0);

String interaction =
rec.getField("INTERACTION_ID").getValue().toString().trim();
String pkeysrc =
rec.getField("PKEY_SRC_OBJECT").getValue().toString().trim();
String rowidxref =
rec.getField("ROWID_XREF").getValue().toString().trim();
String syst =
rec.getField("ROWID_SYSTEM").getValue().toString().trim();

System.out.println("Table: C_B_ADDRESS Interaction


id: " + interaction + " pkey src: " + pkeysrc + " rowid xref: " + rowidxref);

if(action.equalsIgnoreCase("promote")){
PromoteQuery("C_B_ADDRESS", interaction,
pkeysrc, rowidxref, syst);
noPromoteFlag = false;
addrPromoteFlag = true;
}
}

//offtables
if(!addrPromoteFlag){

for(String table: offTables){

request = new SearchQueryRequest();


response = new SearchQueryResponse();

password = new Password();


password.setPassword("A8563514C5769CD5");
password.setEncrypted(true);
request.setUsername("sifuser");
request.setPassword(password);

request.setSiperianObjectUid(SiperianObjectType.BASE_OBJECT.makeUid(table));
request.setFilterCriteria("PARTY_ADDRESS_ID
= ?");

params = new ArrayList<Parameter>();


params.add(new Parameter(rowIDSH));
request.setFilterParameters(params);

recordStates = new
ArrayList<HubStateIndicator>();
recordStates.add(HubStateIndicator.PENDING);
recordStates.add(HubStateIndicator.ACTIVE);
request.setRecordStates(recordStates);

response = (SearchQueryResponse)
sifClient.process(request);

recList = response.getRecords();

for(Iterator iter = recList.iterator();


iter.hasNext();){
rec = new Record();
rec = (Record) iter.next();

String roid =
rec.getField("ROWID_OBJECT").getValue().toString().trim();

request = new SearchQueryRequest();


response = new SearchQueryResponse();
password = new Password();
password.setPassword("A8563514C5769CD5");
password.setEncrypted(true);
request.setUsername("sifuser");
request.setPassword(password);

request.setSiperianObjectUid(SiperianObjectType.XREF.makeUid(table));
request.setFilterCriteria("ROWID_OBJECT =
?");

params = new ArrayList<Parameter>();


params.add(new Parameter(roid));
request.setFilterParameters(params);

recordStates = new
ArrayList<HubStateIndicator>();

recordStates.add(HubStateIndicator.PENDING);
request.setRecordStates(recordStates);

response = (SearchQueryResponse)
sifClient.process(request);

recList = response.getRecords();

if (recList != null && recList.size() ==


1){

System.out.println("Found pending
record in xref of " + table);

rec = new Record();


rec = (Record) recList.get(0);

String interaction =
rec.getField("INTERACTION_ID").getValue().toString().trim();
String pkeysrc =
rec.getField("PKEY_SRC_OBJECT").getValue().toString().trim();
String rowidxref =
rec.getField("ROWID_XREF").getValue().toString().trim();
String syst =
rec.getField("ROWID_SYSTEM").getValue().toString().trim();

System.out.println("Table: " +
table + " Interaction id: " + interaction + " pkey src: " + pkeysrc + " rowid xref:
" + rowidxref);

if(action.equalsIgnoreCase("promote")){
PromoteQuery(table,
interaction, pkeysrc, rowidxref, syst);
noPromoteFlag = false;
}
}
}
}
}
//}
}
else{
System.out.println("No active customers with pfg party id " +
PFGCustID);
}

if(noPromoteFlag){
System.out.println("No promotes done");
}
}

public static void PromoteQuery(String tableName, String interaction, String


pkeysrc, String rowidxref, String syst){
SiperianClient sifClient = getSIFClient();

PromotePendingXrefsRequest request = new PromotePendingXrefsRequest();


PromotePendingXrefsResponse response = new
PromotePendingXrefsResponse();

request.setSiperianObjectUid(SiperianObjectType.BASE_OBJECT.makeUid(tableName));
request.setInteractionId(interaction);

Password password = new Password();


password.setPassword("A8563514C5769CD5");
password.setEncrypted(true);
request.setUsername("sifuser");
request.setPassword(password);

XrefKey xrefKey = new XrefKey();


xrefKey.setSourceKey(pkeysrc);
xrefKey.setRowidXref(rowidxref);
xrefKey.setSystemName(syst);
List<XrefKey> xrefk = new ArrayList<XrefKey>();
xrefk.add(xrefKey);
request.setXrefKeys(xrefk);

response = (PromotePendingXrefsResponse)sifClient.process(request);

public static void RestoreQuery(String tableName, String pkeysrc, String


rowidxref, String syst){
SiperianClient sifClient = getSIFClient();

RestoreRequest request = new RestoreRequest();


RestoreResponse response = new RestoreResponse();

request.setSiperianObjectUid(SiperianObjectType.BASE_OBJECT.makeUid(tableName));

Password password = new Password();


password.setPassword("A8563514C5769CD5");
password.setEncrypted(true);
request.setUsername("sifuser");
request.setPassword(password);
XrefKey xrefKey = new XrefKey();
xrefKey.setSourceKey(pkeysrc);
xrefKey.setRowidXref(rowidxref);
xrefKey.setSystemName(syst);
List<XrefKey> xrefk = new ArrayList<XrefKey>();
xrefk.add(xrefKey);
request.setXrefKeys(xrefk);

response = (RestoreResponse)sifClient.process(request);

public static void DeleteQuery(String tableName, String interaction, String


pkeysrc, String rowidxref, String syst){
SiperianClient sifClient = getSIFClient();

DeleteRequest request = new DeleteRequest();


DeleteResponse response = new DeleteResponse();

request.setSiperianObjectUid(SiperianObjectType.BASE_OBJECT.makeUid(tableName));

if(!interaction.equalsIgnoreCase(""))
request.setInteractionId(interaction);

Password password = new Password();


password.setPassword("A8563514C5769CD5");
password.setEncrypted(true);
request.setUsername("sifuser");
request.setPassword(password);

RecordKey recKey = new RecordKey();


recKey.setSourceKey(pkeysrc);
recKey.setSystemName(syst);
recKey.setRowidXref(rowidxref);
List<RecordKey> recKeys = new ArrayList<RecordKey>();
recKeys.add(recKey);
request.setRecordKeys(recKeys);

response = (DeleteResponse)sifClient.process(request);

public static void SRSQuery(String rowid, String tableName){


SiperianClient sifClient = getSIFClient();

SetRecordStateRequest req = new SetRecordStateRequest();


SetRecordStateResponse resp = new SetRecordStateResponse();

Password password = new Password();


password.setPassword("A8563514C5769CD5");
password.setEncrypted(true);
req.setUsername("sifuser");
req.setPassword(password);

req.setSiperianObjectUid(SiperianObjectType.BASE_OBJECT.makeUid(tableName));
RecordKey rKey = new RecordKey();
rKey.setRowid(rowid);

req.addRecordKey(rKey);
req.setRecordState(RecordState.NEWLY_LOADED);

System.out.println("table: " + tableName + " rowid: " + rowid);


resp = (SetRecordStateResponse) sifClient.process(req);
}

public static void UpdateQuery(String tableName, String rowid, List<String>


colNames, List<String> colVals){
SiperianClient sifClient = getSIFClient();

PutRequest req = new PutRequest();


PutResponse resp = new PutResponse();

Password password = new Password();


password.setPassword("A8563514C5769CD5");
password.setEncrypted(true);
req.setUsername("sifuser");
req.setPassword(password);

Record record = new Record();

record.setSiperianObjectUid(SiperianObjectType.BASE_OBJECT.makeUid(tableName));

for(int x= 0; x<colNames.size();x++){
System.out.println("setting field. name: " + colNames.get(x) + "
value: " + colVals.get(x));
record.setField(new Field(colNames.get(x), colVals.get(x)));
}

RecordKey rKey = new RecordKey();


rKey.setSystemName("Admin");
rKey.setRowid(rowid);

req.setRecordKey(rKey);

req.setRecord(record);

req.setGenerateSourceKey(false);

req.setBypassPostLoadUE(true);

resp = (PutResponse) sifClient.process(req);


}

public static void UpdateQuery(String tableName, String rowid, String srcKey,


String interacn, List<String> colNames, List<String> colVals){
SiperianClient sifClient = getSIFClient();

PutRequest req = new PutRequest();


PutResponse resp = new PutResponse();

Password password = new Password();


password.setPassword("A8563514C5769CD5");
password.setEncrypted(true);
req.setUsername("sifuser");
req.setPassword(password);

if(!interacn.equalsIgnoreCase(""))
req.setInteractionId(interacn);

Record record = new Record();

record.setSiperianObjectUid(SiperianObjectType.BASE_OBJECT.makeUid(tableName));

for(int x= 0; x<colNames.size();x++){
System.out.println("setting field. name: " + colNames.get(x) + "
value: " + colVals.get(x));
record.setField(new Field(colNames.get(x), colVals.get(x)));
}

RecordKey rKey = new RecordKey();


rKey.setSystemName("Admin");
rKey.setRowid(rowid);

if(!srcKey.equalsIgnoreCase(""))
rKey.setSourceKey(srcKey);

req.setRecordKey(rKey);

req.setRecord(record);

req.setGenerateSourceKey(false);

req.setBypassPostLoadUE(true);

resp = (PutResponse) sifClient.process(req);


}

public static void InsertQuery(String tableName, List<String> colNames,


List<String> colVals){
SiperianClient sifClient = getSIFClient();

PutRequest request = new PutRequest();


PutResponse response = new PutResponse();

Password password = new Password();


password.setPassword("A8563514C5769CD5");
password.setEncrypted(true);
request.setUsername("sifuser");
request.setPassword(password);

Record record = new Record();

record.setSiperianObjectUid(SiperianObjectType.BASE_OBJECT.makeUid(tableName));

for(int x= 0; x<colNames.size();x++){
record.setField(new Field(colNames.get(x), colVals.get(x)));
}
RecordKey rKey = new RecordKey();
rKey.setSystemName("Admin");
request.setRecordKey(rKey);

request.setRecord(record);

request.setGenerateSourceKey(true);

response = (PutResponse) sifClient.process(request);


}

public static void updateAccountNum(String PFGVendID){


SiperianClient sifClient = getSIFClient();

SearchQueryRequest request = new SearchQueryRequest();


SearchQueryResponse response = new SearchQueryResponse();

Password password = new Password();


password.setPassword("A8563514C5769CD5");
password.setEncrypted(true);
request.setUsername("sifuser");
request.setPassword(password);

request.setSiperianObjectUid(SiperianObjectType.BASE_OBJECT.makeUid("C_B_PARTY"));
request.setFilterCriteria("PFG_PARTY_ID = ? AND BO_CLASS_CODE =
'Vendor'");
ArrayList<Parameter> params = new ArrayList<Parameter>();
params.add(new Parameter(PFGVendID));
request.setFilterParameters(params);

ArrayList<HubStateIndicator> recordStates = new


ArrayList<HubStateIndicator>();
recordStates.add(HubStateIndicator.ACTIVE);
request.setRecordStates(recordStates);

response = (SearchQueryResponse) sifClient.process(request);

List<?> recList = response.getRecords();

if (recList != null && recList.size() > 1){


System.out.println("More than one vendor with pfg party id " +
PFGVendID);
}
else if (recList != null && recList.size() == 1)
{
Record rec = (Record) recList.get(0);

String partyid =
rec.getField("ROWID_OBJECT").getValue().toString().trim();

request = new SearchQueryRequest();


response = new SearchQueryResponse();

password = new Password();


password.setPassword("A8563514C5769CD5");
password.setEncrypted(true);
request.setUsername("sifuser");
request.setPassword(password);

request.setSiperianObjectUid(SiperianObjectType.BASE_OBJECT.makeUid("C_B_RL_PARTY_O
PCO"));
request.setFilterCriteria("OPCO_CD = 'DEFAULT' AND PARTY_ID
= ?");

params = new ArrayList<Parameter>();


params.add(new Parameter(partyid));
request.setFilterParameters(params);

recordStates = new ArrayList<HubStateIndicator>();


recordStates.add(HubStateIndicator.ACTIVE);
request.setRecordStates(recordStates);

response = (SearchQueryResponse) sifClient.process(request);

recList = response.getRecords();

if (recList != null && recList.size() > 1){


System.out.println("More than one default opco for vendor "
+ PFGVendID);
}
else if (recList != null && recList.size() == 1){
rec = (Record) recList.get(0);

String accountNum =
rec.getField("TARGET_SYSTEM_ID").getValue().toString().trim();

request = new SearchQueryRequest();


response = new SearchQueryResponse();

password = new Password();


password.setPassword("A8563514C5769CD5");
password.setEncrypted(true);
request.setUsername("sifuser");
request.setPassword(password);

request.setSiperianObjectUid(SiperianObjectType.BASE_OBJECT.makeUid("C_B_RL_PARTY_O
PCO"));
request.setFilterCriteria("OPCO_CD = '428' AND PARTY_ID
= ?");

params = new ArrayList<Parameter>();


params.add(new Parameter(partyid));
request.setFilterParameters(params);

recordStates = new ArrayList<HubStateIndicator>();


recordStates.add(HubStateIndicator.ACTIVE);
request.setRecordStates(recordStates);

response = (SearchQueryResponse)
sifClient.process(request);

recList = response.getRecords();
if (recList != null && recList.size() > 1){
System.out.println("More than one 428 opco for vendor
" + PFGVendID);
}
else if (recList != null && recList.size() == 1){
rec = (Record) recList.get(0);
String rowid =
rec.getField("ROWID_OBJECT").getValue().toString().trim();
UpdateQuery("C_B_RL_PARTY_OPCO", rowid, new
ArrayList<String>(Arrays.asList("TARGET_SYSTEM_ID")),
new
ArrayList<String>(Arrays.asList(accountNum)));
}
else{
System.out.println("No 428 opcos for vendor " +
PFGVendID);
}
}
else{
System.out.println("No default opcos for vendor " +
PFGVendID);
}
}
else{
System.out.println("No active vendors with pfg party id " +
PFGVendID);
}
}

public static void getPendingVendor(String PFGVendID, String interacn, String


action){

SiperianClient sifClient = getSIFClient();

SearchQueryRequest request = new SearchQueryRequest();


SearchQueryResponse response = new SearchQueryResponse();

Password password = new Password();


password.setPassword("A8563514C5769CD5");
password.setEncrypted(true);
request.setUsername("sifuser");
request.setPassword(password);

request.setSiperianObjectUid(SiperianObjectType.BASE_OBJECT.makeUid("C_B_PARTY"));
request.setFilterCriteria("PFG_PARTY_ID = ? AND BO_CLASS_CODE =
'Vendor'");
ArrayList<Parameter> params = new ArrayList<Parameter>();
params.add(new Parameter(PFGVendID));
request.setFilterParameters(params);

ArrayList<HubStateIndicator> recordStates = new


ArrayList<HubStateIndicator>();
recordStates.add(HubStateIndicator.ACTIVE);
recordStates.add(HubStateIndicator.PENDING);
request.setRecordStates(recordStates);
response = (SearchQueryResponse) sifClient.process(request);

List<?> recList = response.getRecords();

if (recList != null && recList.size() > 1){


System.out.println("More than one vendor with pfg party id " +
PFGVendID);
}
else if (recList != null && recList.size() == 1)
{
Record rec = (Record) recList.get(0);

Field field = rec.getField("ROWID_OBJECT");


String rowid = field.getValue().toString().trim();

request = new SearchQueryRequest();


response = new SearchQueryResponse();

password = new Password();


password.setPassword("A8563514C5769CD5");
password.setEncrypted(true);
request.setUsername("sifuser");
request.setPassword(password);

request.setSiperianObjectUid(SiperianObjectType.XREF.makeUid("C_B_PARTY"));
request.setFilterCriteria("ROWID_OBJECT = ?");

params = new ArrayList<Parameter>();


params.add(new Parameter(rowid));
request.setFilterParameters(params);

recordStates = new ArrayList<HubStateIndicator>();


recordStates.add(HubStateIndicator.PENDING);
request.setRecordStates(recordStates);

response = (SearchQueryResponse) sifClient.process(request);

recList = response.getRecords();

if (recList != null && recList.size() == 1){


System.out.println("Found pending record in C_B_Party_Xref:
");

rec = new Record();


rec = (Record) recList.get(0);

String interaction =
rec.getField("INTERACTION_ID").getValue().toString().trim();
String pkeysrc =
rec.getField("PKEY_SRC_OBJECT").getValue().toString().trim();
String rowidxref =
rec.getField("ROWID_XREF").getValue().toString().trim();
String syst =
rec.getField("ROWID_SYSTEM").getValue().toString().trim();

if(action.equalsIgnoreCase("promote")){
System.out.println("Interaction id: " + interaction +
" pkey src: " + pkeysrc + " rowid xref: " + rowidxref);
PromoteQuery("C_B_PARTY", interaction, pkeysrc,
rowidxref, syst);
}
else if(action.equalsIgnoreCase("delete") &&
interacn.equalsIgnoreCase(interaction)){
System.out.println("Interaction id: " + interaction +
" pkey src: " + pkeysrc + " rowid xref: " + rowidxref);
DeleteQuery("C_B_PARTY", interaction, pkeysrc,
rowidxref, syst);
}
}

System.out.println("Check Vendor Dtl and all other tables.");

ArrayList<String> tables = new ArrayList<String>();


tables.add("C_B_VENDOR_DTL");
tables.add("C_B_RL_ALTERNATE_ID");
tables.add("C_B_PARTY_COI");
tables.add("C_B_CONTACT");
tables.add("C_B_RL_PARTY_OPCO");
tables.add("C_B_RL_PARTY_ADDR");
tables.add("C_B_ENTERPRISE_VEN");

List<String> rpaRowid = new ArrayList<String>();


List<String> rpaAddrid = new ArrayList<String>();

for(String table: tables){

request = new SearchQueryRequest();


response = new SearchQueryResponse();

password = new Password();


password.setPassword("A8563514C5769CD5");
password.setEncrypted(true);
request.setUsername("sifuser");
request.setPassword(password);

request.setSiperianObjectUid(SiperianObjectType.BASE_OBJECT.makeUid(table));
request.setFilterCriteria("PARTY_ID = ?");

params = new ArrayList<Parameter>();


params.add(new Parameter(rowid));
request.setFilterParameters(params);

recordStates = new ArrayList<HubStateIndicator>();


recordStates.add(HubStateIndicator.PENDING);
recordStates.add(HubStateIndicator.ACTIVE);
request.setRecordStates(recordStates);

response = (SearchQueryResponse)
sifClient.process(request);

recList = response.getRecords();

for(Iterator iter = recList.iterator(); iter.hasNext();){


rec = new Record();
rec = (Record) iter.next();
String rid =
rec.getField("ROWID_OBJECT").getValue().toString().trim();

if(table.equalsIgnoreCase("C_B_RL_PARTY_ADDR")){
rpaRowid.add(rid);

rpaAddrid.add(rec.getField("ADDRESS_ID").getValue().toString().trim());
}

request = new SearchQueryRequest();


response = new SearchQueryResponse();

password = new Password();


password.setPassword("A8563514C5769CD5");
password.setEncrypted(true);
request.setUsername("sifuser");
request.setPassword(password);

request.setSiperianObjectUid(SiperianObjectType.XREF.makeUid(table));
request.setFilterCriteria("ROWID_OBJECT = ?");

params = new ArrayList<Parameter>();


params.add(new Parameter(rid));
request.setFilterParameters(params);

recordStates = new ArrayList<HubStateIndicator>();


recordStates.add(HubStateIndicator.PENDING);
request.setRecordStates(recordStates);

response = (SearchQueryResponse)
sifClient.process(request);

recList = response.getRecords();

if (recList != null && recList.size() == 1){


System.out.println("Found pending record in
xref of table: " + table);

rec = new Record();


rec = (Record) recList.get(0);

String interaction =
rec.getField("INTERACTION_ID").getValue().toString().trim();
String pkeysrc =
rec.getField("PKEY_SRC_OBJECT").getValue().toString().trim();
String rowidxref =
rec.getField("ROWID_XREF").getValue().toString().trim();
String syst =
rec.getField("ROWID_SYSTEM").getValue().toString().trim();

if(action.equalsIgnoreCase("promote")){
System.out.println("Table: " + table + "
Interaction id: " + interaction + " pkey src: " + pkeysrc + " rowid xref: " +
rowidxref);
PromoteQuery(table, interaction, pkeysrc,
rowidxref, syst);
}
else if(action.equalsIgnoreCase("delete") &&
interacn.equalsIgnoreCase(interaction)){
System.out.println("Table: " + table + "
Interaction id: " + interaction + " pkey src: " + pkeysrc + " rowid xref: " +
rowidxref);
DeleteQuery(table, interaction, pkeysrc,
rowidxref, syst);
}
}
}
}

for(String rpaAddr : rpaAddrid){

request = new SearchQueryRequest();


response = new SearchQueryResponse();

password = new Password();


password.setPassword("A8563514C5769CD5");
password.setEncrypted(true);
request.setUsername("sifuser");
request.setPassword(password);

request.setSiperianObjectUid(SiperianObjectType.XREF.makeUid("C_B_ADDRESS"));
request.setFilterCriteria("ROWID_OBJECT = ?");

params = new ArrayList<Parameter>();


params.add(new Parameter(rpaAddr));
request.setFilterParameters(params);

recordStates = new ArrayList<HubStateIndicator>();


recordStates.add(HubStateIndicator.PENDING);
request.setRecordStates(recordStates);

response = (SearchQueryResponse)
sifClient.process(request);

recList = response.getRecords();

if (recList != null && recList.size() == 1){

System.out.println("Found pending record in xref of


C_B_ADDRESS");

rec = new Record();


rec = (Record) recList.get(0);

String interaction =
rec.getField("INTERACTION_ID").getValue().toString().trim();
String pkeysrc =
rec.getField("PKEY_SRC_OBJECT").getValue().toString().trim();
String rowidxref =
rec.getField("ROWID_XREF").getValue().toString().trim();
String syst =
rec.getField("ROWID_SYSTEM").getValue().toString().trim();

if(action.equalsIgnoreCase("promote")){
System.out.println("Table: C_B_ADDRESS
Interaction id: " + interaction + " pkey src: " + pkeysrc + " rowid xref: " +
rowidxref);
PromoteQuery("C_B_ADDRESS", interaction,
pkeysrc, rowidxref, syst);
}
if(action.equalsIgnoreCase("delete") &&
interacn.equalsIgnoreCase(interaction)){
System.out.println("Table: C_B_ADDRESS
Interaction id: " + interaction + " pkey src: " + pkeysrc + " rowid xref: " +
rowidxref);
DeleteQuery("C_B_ADDRESS", interaction,
pkeysrc, rowidxref, syst);
}
}
}

for(String rparow : rpaRowid){

request = new SearchQueryRequest();


response = new SearchQueryResponse();

password = new Password();


password.setPassword("A8563514C5769CD5");
password.setEncrypted(true);
request.setUsername("sifuser");
request.setPassword(password);

request.setSiperianObjectUid(SiperianObjectType.BASE_OBJECT.makeUid("C_B_VEN_ADDR_D
TL"));
request.setFilterCriteria("PARTY_ADDRESS_ID = ?");

params = new ArrayList<Parameter>();


params.add(new Parameter(rparow));
request.setFilterParameters(params);

recordStates = new ArrayList<HubStateIndicator>();


recordStates.add(HubStateIndicator.PENDING);
recordStates.add(HubStateIndicator.ACTIVE);
request.setRecordStates(recordStates);

response = (SearchQueryResponse)
sifClient.process(request);

recList = response.getRecords();

for(Iterator iter = recList.iterator(); iter.hasNext();){


rec = new Record();
rec = (Record) iter.next();

String rid =
rec.getField("ROWID_OBJECT").getValue().toString().trim();

request = new SearchQueryRequest();


response = new SearchQueryResponse();

password = new Password();


password.setPassword("A8563514C5769CD5");
password.setEncrypted(true);
request.setUsername("sifuser");
request.setPassword(password);

request.setSiperianObjectUid(SiperianObjectType.XREF.makeUid("C_B_VEN_ADDR_DTL"));
request.setFilterCriteria("ROWID_OBJECT = ?");

params = new ArrayList<Parameter>();


params.add(new Parameter(rid));
request.setFilterParameters(params);

recordStates = new ArrayList<HubStateIndicator>();


recordStates.add(HubStateIndicator.PENDING);
request.setRecordStates(recordStates);

response = (SearchQueryResponse)
sifClient.process(request);

recList = response.getRecords();

if (recList != null && recList.size() == 1){


System.out.println("Found pending record in
xref of C_B_VEN_ADDR_DTL");

rec = new Record();


rec = (Record) recList.get(0);

String interaction =
rec.getField("INTERACTION_ID").getValue().toString().trim();
String pkeysrc =
rec.getField("PKEY_SRC_OBJECT").getValue().toString().trim();
String rowidxref =
rec.getField("ROWID_XREF").getValue().toString().trim();
String syst =
rec.getField("ROWID_SYSTEM").getValue().toString().trim();

if(action.equalsIgnoreCase("promote")){
System.out.println("Table:
C_B_VEN_ADDR_DTL Interaction id: " + interaction + " pkey src: " + pkeysrc + "
rowid xref: " + rowidxref);
PromoteQuery("C_B_VEN_ADDR_DTL",
interaction, pkeysrc, rowidxref, syst);
}
else if(action.equalsIgnoreCase("delete") &&
interacn.equalsIgnoreCase(interaction)){
System.out.println("Table:
C_B_VEN_ADDR_DTL Interaction id: " + interaction + " pkey src: " + pkeysrc + "
rowid xref: " + rowidxref);
DeleteQuery("C_B_VEN_ADDR_DTL",
interaction, pkeysrc, rowidxref, syst);
}
}
}
}
}
else{
System.out.println("No active vendors with pfg party id " +
PFGVendID);
}
}

public static void addConcept(String PFGCustID){


SiperianClient sifClient = getSIFClient();

SearchQueryRequest request = new SearchQueryRequest();


SearchQueryResponse response = new SearchQueryResponse();

Password password = new Password();


password.setPassword("A8563514C5769CD5");
password.setEncrypted(true);
request.setUsername("sifuser");
request.setPassword(password);

request.setSiperianObjectUid(SiperianObjectType.BASE_OBJECT.makeUid("C_B_PARTY"));
request.setFilterCriteria("BO_CLASS_CODE = 'Customer' AND PFG_PARTY_ID
= ?");
ArrayList<Parameter> params = new ArrayList<Parameter>();
params.add(new Parameter(PFGCustID));
request.setFilterParameters(params);

ArrayList<HubStateIndicator> recordStates = new


ArrayList<HubStateIndicator>();
recordStates.add(HubStateIndicator.ACTIVE);
request.setRecordStates(recordStates);

response = (SearchQueryResponse) sifClient.process(request);

List<?> recList = response.getRecords();

if(recList != null && recList.size() == 1){


Record rec = (Record) recList.get(0);

String partyID =
rec.getField("ROWID_OBJECT").getValue().toString().trim();

request = new SearchQueryRequest();

response = new SearchQueryResponse();

password = new Password();


password.setPassword("A8563514C5769CD5");
password.setEncrypted(true);
request.setUsername("sifuser");
request.setPassword(password);

request.setSiperianObjectUid(SiperianObjectType.BASE_OBJECT.makeUid("C_B_RL_PARTY_A
DDR"));
request.setFilterCriteria("REL_TYPE_CD = 'SH' AND PARTY_ID = ?");
params = new ArrayList<Parameter>();
params.add(new Parameter(partyID));
request.setFilterParameters(params);

recordStates = new ArrayList<HubStateIndicator>();


recordStates.add(HubStateIndicator.ACTIVE);
request.setRecordStates(recordStates);

response = (SearchQueryResponse) sifClient.process(request);

recList = response.getRecords();

if(recList != null && recList.size() == 1){


rec = (Record) recList.get(0);

String partyAddrID =
rec.getField("ROWID_OBJECT").getValue().toString().trim();

InsertQuery("C_B_CONCEPT_PARTYADDR", new
ArrayList<String>(Arrays.asList("CONCEPT_CD", "PARTY_ADDRESS_ID")),
new ArrayList<String>(Arrays.asList("300004",
partyAddrID)));
}
else{
System.out.println("Not 1 active SH addr");
}
}
else{
System.out.println("Not 1 active customer");
}
}

public static void updateConcept(String conceptPAID){


SiperianClient sifClient = getSIFClient();

SearchQueryRequest request = new SearchQueryRequest();


SearchQueryResponse response = new SearchQueryResponse();

Password password = new Password();


password.setPassword("A8563514C5769CD5");
password.setEncrypted(true);
request.setUsername("sifuser");
request.setPassword(password);

request.setSiperianObjectUid(SiperianObjectType.BASE_OBJECT.makeUid("C_B_CONCEPT_PA
RTYADDR"));
request.setFilterCriteria("PARTY_ADDRESS_ID = ?");
ArrayList<Parameter> params = new ArrayList<Parameter>();
params.add(new Parameter(conceptPAID));
request.setFilterParameters(params);

ArrayList<HubStateIndicator> recordStates = new


ArrayList<HubStateIndicator>();
recordStates.add(HubStateIndicator.ACTIVE);
request.setRecordStates(recordStates);

response = (SearchQueryResponse) sifClient.process(request);

List<?> recList = response.getRecords();

if(recList != null && recList.size() == 1){


Record rec = (Record) recList.get(0);
String rowid =
rec.getField("ROWID_OBJECT").getValue().toString().trim();
String conc =
rec.getField("CONCEPT_CD").getValue().toString().trim();

request = new SearchQueryRequest();


response = new SearchQueryResponse();

password = new Password();


password.setPassword("A8563514C5769CD5");
password.setEncrypted(true);
request.setUsername("sifuser");
request.setPassword(password);

request.setSiperianObjectUid(SiperianObjectType.XREF.makeUid("C_B_CONCEPT_PARTYADDR
"));
request.setFilterCriteria("ROWID_OBJECT = ?");

params = new ArrayList<Parameter>();


params.add(new Parameter(rowid));
request.setFilterParameters(params);

recordStates = new ArrayList<HubStateIndicator>();


recordStates.add(HubStateIndicator.ACTIVE);
request.setRecordStates(recordStates);

response = (SearchQueryResponse) sifClient.process(request);

recList = response.getRecords();

if (recList != null && recList.size() == 1 &&


conc.equalsIgnoreCase("300003")){

rec = (Record) recList.get(0);


String srcKey =
rec.getField("PKEY_SRC_OBJECT").getValue().toString().trim();

PutRequest req = new PutRequest();


PutResponse resp = new PutResponse();

password = new Password();


password.setPassword("A8563514C5769CD5");
password.setEncrypted(true);
req.setUsername("sifuser");
req.setPassword(password);

Record record = new Record();

record.setSiperianObjectUid(SiperianObjectType.BASE_OBJECT.makeUid("C_B_CONCEPT_PAR
TYADDR"));

record.setField(new Field("CONCEPT_CD", conc));


record.setField(new Field("CUSTOMER_NUMBER"));
RecordKey rKey = new RecordKey();
rKey.setSystemName("Admin");
rKey.setRowid(rowid);
rKey.setSourceKey(srcKey);

req.setRecordKey(rKey);

req.setRecord(record);

req.setGenerateSourceKey(false);

System.out.println("set values for putreq- rowid: " + rowid


+ " concept: " + conc + " pk src: " + srcKey);
resp = (PutResponse) sifClient.process(req);

}
else{
System.out.println("More than one in XREF of :" +
conceptPAID + " or none");
}
}
else{
System.out.println("More than one in BO of :" + conceptPAID + "
or none");
}
}

public static void updateConcept(String PFGCustID, String Opco){


SiperianClient sifClient = getSIFClient();

SearchQueryRequest request = new SearchQueryRequest();


SearchQueryResponse response = new SearchQueryResponse();

Password password = new Password();


password.setPassword("A8563514C5769CD5");
password.setEncrypted(true);
request.setUsername("sifuser");
request.setPassword(password);

request.setSiperianObjectUid(SiperianObjectType.BASE_OBJECT.makeUid("C_B_PARTY"));
request.setFilterCriteria("PFG_PARTY_ID = ? AND BO_CLASS_CODE =
'Customer'");
ArrayList<Parameter> params = new ArrayList<Parameter>();
params.add(new Parameter(PFGCustID));
request.setFilterParameters(params);

ArrayList<HubStateIndicator> recordStates = new


ArrayList<HubStateIndicator>();
recordStates.add(HubStateIndicator.ACTIVE);
recordStates.add(HubStateIndicator.PENDING);
request.setRecordStates(recordStates);

response = (SearchQueryResponse) sifClient.process(request);

List<?> recList = response.getRecords();

if (recList != null && recList.size() > 1){


System.out.println("More than one customer with pfg party id " +
PFGCustID);
}
else if (recList != null && recList.size() == 1){
Record rec = (Record) recList.get(0);

Field field = rec.getField("ROWID_OBJECT");


String rowid = field.getValue().toString().trim();

request = new SearchQueryRequest();


response = new SearchQueryResponse();

password = new Password();


password.setPassword("A8563514C5769CD5");
password.setEncrypted(true);
request.setUsername("sifuser");
request.setPassword(password);

request.setSiperianObjectUid(SiperianObjectType.BASE_OBJECT.makeUid("C_B_RL_PARTY_O
PCO"));
request.setFilterCriteria("PARTY_ID = ? AND OPCO_CD = ?");

params = new ArrayList<Parameter>();


params.add(new Parameter(rowid));
params.add(new Parameter(Opco));
request.setFilterParameters(params);

recordStates = new ArrayList<HubStateIndicator>();


recordStates.add(HubStateIndicator.ACTIVE);
recordStates.add(HubStateIndicator.PENDING);
request.setRecordStates(recordStates);

response = (SearchQueryResponse) sifClient.process(request);

recList = response.getRecords();

String paidSH = "";

for(Iterator iter = recList.iterator(); iter.hasNext();){


rec = new Record();
rec = (Record) iter.next();

String paid =
rec.getField("PARTY_ADDRESS_ID").getValue().toString().trim();

request = new SearchQueryRequest();


response = new SearchQueryResponse();

password = new Password();


password.setPassword("A8563514C5769CD5");
password.setEncrypted(true);
request.setUsername("sifuser");
request.setPassword(password);

request.setSiperianObjectUid(SiperianObjectType.BASE_OBJECT.makeUid("C_B_RL_PARTY_A
DDR"));
request.setFilterCriteria("ROWID_OBJECT = ?");

params = new ArrayList<Parameter>();


params.add(new Parameter(paid));
request.setFilterParameters(params);

recordStates = new ArrayList<HubStateIndicator>();


recordStates.add(HubStateIndicator.ACTIVE);
recordStates.add(HubStateIndicator.PENDING);
request.setRecordStates(recordStates);

response = (SearchQueryResponse)
sifClient.process(request);

recList = response.getRecords();

if (recList != null && recList.size() == 1){


rec = (Record) recList.get(0);

if(rec.getField("REL_TYPE_CD").getValue().toString().trim().equalsIgnoreCase("SH"))
{
paidSH = paid;
System.out.println("paidSH: " + paidSH);
break;
}
}
}

if(!paidSH.equalsIgnoreCase("")){

request = new SearchQueryRequest();


response = new SearchQueryResponse();

password = new Password();


password.setPassword("A8563514C5769CD5");
password.setEncrypted(true);
request.setUsername("sifuser");
request.setPassword(password);

request.setSiperianObjectUid(SiperianObjectType.BASE_OBJECT.makeUid("C_B_CONCEPT_PA
RTYADDR"));
request.setFilterCriteria("PARTY_ADDRESS_ID = ?");

params = new ArrayList<Parameter>();


params.add(new Parameter(paidSH));
request.setFilterParameters(params);

recordStates = new ArrayList<HubStateIndicator>();


recordStates.add(HubStateIndicator.ACTIVE);
recordStates.add(HubStateIndicator.PENDING);
request.setRecordStates(recordStates);

response = (SearchQueryResponse)
sifClient.process(request);
recList = response.getRecords();

if (recList.size() == 1){
//update concept
rec = (Record) recList.get(0);

//get from xref


String rid =
rec.getField("ROWID_OBJECT").getValue().toString().trim();
String paid =
rec.getField("PARTY_ADDRESS_ID").getValue().toString().trim();

if(paid.equalsIgnoreCase(paidSH)){
request = new SearchQueryRequest();
response = new SearchQueryResponse();

password = new Password();


password.setPassword("A8563514C5769CD5");
password.setEncrypted(true);
request.setUsername("sifuser");
request.setPassword(password);

request.setSiperianObjectUid(SiperianObjectType.XREF.makeUid("C_B_CONCEPT_PARTYADDR
"));
request.setFilterCriteria("ROWID_OBJECT = ?");

params = new ArrayList<Parameter>();


params.add(new Parameter(rid));
request.setFilterParameters(params);

recordStates = new
ArrayList<HubStateIndicator>();
recordStates.add(HubStateIndicator.ACTIVE);
recordStates.add(HubStateIndicator.PENDING);
request.setRecordStates(recordStates);

response = (SearchQueryResponse)
sifClient.process(request);

recList = response.getRecords();

if (recList != null && recList.size() == 1){


rec = new Record();
rec = (Record) recList.get(0);

String pkeysrc =
rec.getField("PKEY_SRC_OBJECT").getValue().toString().trim();
System.out.println("rowid: " + rid + "
pkey src: " + pkeysrc + " existing paid: " + paid);

System.out.println("set values for update


concept");
UpdateQuery("C_B_CONCEPT_PARTYADDR", rid,
pkeysrc, "", new ArrayList<String>(Arrays.asList("CONCEPT_CD")),
new
ArrayList<String>(Arrays.asList("20001")));
}
else{
System.out.println("More than one concept
xref");
}

}
else{
System.out.println("Existing PAID not matching
selected PAID");
}
}

else if (recList.size() == 0){


List<String> colNames = new ArrayList<String>();
colNames.add("PARTY_ADDRESS_ID");
colNames.add("CONCEPT_CD");
List<String> colVals = new ArrayList<String>();
colVals.add(paidSH);
colVals.add("20001");

System.out.println("set values for add concept");


InsertQuery("C_B_CONCEPT_PARTYADDR", colNames,
colVals);
}
}
}
else{
System.out.println("No active customers with pfg party id " +
PFGCustID);
}
}

public static void restoreEntVen(int entVenRowid) {


SiperianClient sifClient = getSIFClient();

SearchQueryRequest request = new SearchQueryRequest();


SearchQueryResponse response = new SearchQueryResponse();

Password password = new Password();


password.setPassword("A8563514C5769CD5");
password.setEncrypted(true);
request.setUsername("sifuser");
request.setPassword(password);

request.setSiperianObjectUid(SiperianObjectType.XREF.makeUid("C_B_ENTERPRISE_VEN"))
;
request.setFilterCriteria("ROWID_OBJECT = ?");
ArrayList<Parameter> params = new ArrayList<Parameter>();
params.add(new Parameter(entVenRowid));
request.setFilterParameters(params);

ArrayList<HubStateIndicator> recordStates = new


ArrayList<HubStateIndicator>();
recordStates.add(HubStateIndicator.DELETED);
request.setRecordStates(recordStates);
response = (SearchQueryResponse) sifClient.process(request);

List<?> recList = response.getRecords();

if (recList != null && recList.size() > 0){

for(Iterator iter = recList.iterator(); iter.hasNext();){


Record rec = new Record();
rec = (Record) iter.next();

String rowidXref =
rec.getField("ROWID_XREF").getValue().toString().trim();

String pkeySrc =
rec.getField("PKEY_SRC_OBJECT").getValue().toString().trim();

String syst =
rec.getField("ROWID_SYSTEM").getValue().toString().trim();

RestoreQuery("C_B_ENTERPRISE_VEN", pkeySrc, rowidXref,


syst);
}
}
else{
System.out.println("No deleted ent ven with rowid " +
entVenRowid);
}
}

public static void updateAddressID(String cust){

SiperianClient sifClient = getSIFClient();

SearchQueryRequest request = new SearchQueryRequest();


SearchQueryResponse response = new SearchQueryResponse();

Password password = new Password();


password.setPassword("A8563514C5769CD5");
password.setEncrypted(true);
request.setUsername("sifuser");
request.setPassword(password);

request.setSiperianObjectUid(SiperianObjectType.BASE_OBJECT.makeUid("C_B_PARTY"));
request.setFilterCriteria("PFG_PARTY_ID = ? AND BO_CLASS_CODE =
'Customer'");
ArrayList<Parameter> params = new ArrayList<Parameter>();
params.add(new Parameter(cust));
request.setFilterParameters(params);

ArrayList<HubStateIndicator> recordStates = new


ArrayList<HubStateIndicator>();
recordStates.add(HubStateIndicator.ACTIVE);
request.setRecordStates(recordStates);

response = (SearchQueryResponse) sifClient.process(request);

List<?> recList = response.getRecords();


if (recList != null && recList.size() == 1)
{
Record rec = (Record) recList.get(0);

Field field = rec.getField("ROWID_OBJECT");


String rowid = field.getValue().toString().trim();

request = new SearchQueryRequest();


response = new SearchQueryResponse();

password = new Password();


password.setPassword("A8563514C5769CD5");
password.setEncrypted(true);
request.setUsername("sifuser");
request.setPassword(password);

request.setSiperianObjectUid(SiperianObjectType.BASE_OBJECT.makeUid("C_B_RL_PARTY_O
PCO"));
request.setFilterCriteria("PARTY_ID = ?");

params = new ArrayList<Parameter>();


params.add(new Parameter(rowid));
request.setFilterParameters(params);

recordStates = new ArrayList<HubStateIndicator>();


recordStates.add(HubStateIndicator.ACTIVE);
request.setRecordStates(recordStates);

response = (SearchQueryResponse) sifClient.process(request);

recList = response.getRecords();

HashMap<String,String> RPAaddr = new HashMap<String, String>();

for(Iterator iter = recList.iterator(); iter.hasNext();){


rec = new Record();
rec = (Record) iter.next();

String rid =
rec.getField("ROWID_OBJECT").getValue().toString().trim();
String rpa =
rec.getField("PARTY_ADDRESS_ID").getValue().toString().trim();
String addr =
rec.getField("ADDRESS_ID").getValue().toString().trim();

if(RPAaddr.get(rpa) == null){

request = new SearchQueryRequest();


response = new SearchQueryResponse();

password = new Password();


password.setPassword("A8563514C5769CD5");
password.setEncrypted(true);
request.setUsername("sifuser");
request.setPassword(password);
request.setSiperianObjectUid(SiperianObjectType.BASE_OBJECT.makeUid("C_B_RL_PARTY_A
DDR"));
request.setFilterCriteria("ROWID_OBJECT = ?");

params = new ArrayList<Parameter>();


params.add(new Parameter(rpa));
request.setFilterParameters(params);

recordStates = new ArrayList<HubStateIndicator>();


recordStates.add(HubStateIndicator.ACTIVE);
request.setRecordStates(recordStates);

response = (SearchQueryResponse)
sifClient.process(request);

recList = response.getRecords();

Record rec1 = (Record) recList.get(0);

String adr =
rec1.getField("ADDRESS_ID").getValue().toString().trim();

RPAaddr.put(rpa, adr);

System.out.println("For customer " + cust + " rpa: " + rpa


+ " addr id: " + RPAaddr.get(rpa));

if(!addr.equalsIgnoreCase(RPAaddr.get(rpa))){
UpdateQuery("C_B_RL_PARTY_OPCO", rid, new
ArrayList<String>(Arrays.asList("ADDRESS_ID")),
new
ArrayList<String>(Arrays.asList(RPAaddr.get(rpa))));
}
}
}
else if (recList != null && recList.size() > 1){
System.out.println("Found more than one customer with party id "
+ cust);
}
else{
System.out.println("Did not find customer " + cust);
}
}

public static void consolidateVendor(String PFGVendID){

SiperianClient sifClient = getSIFClient();

SearchQueryRequest request = new SearchQueryRequest();


SearchQueryResponse response = new SearchQueryResponse();

Password password = new Password();


password.setPassword("A8563514C5769CD5");
password.setEncrypted(true);
request.setUsername("sifuser");
request.setPassword(password);

request.setSiperianObjectUid(SiperianObjectType.BASE_OBJECT.makeUid("C_B_PARTY"));
request.setFilterCriteria("PFG_PARTY_ID = ? AND BO_CLASS_CODE =
'Vendor'");
ArrayList<Parameter> params = new ArrayList<Parameter>();
params.add(new Parameter(PFGVendID));
request.setFilterParameters(params);

ArrayList<HubStateIndicator> recordStates = new


ArrayList<HubStateIndicator>();
recordStates.add(HubStateIndicator.ACTIVE);
request.setRecordStates(recordStates);

response = (SearchQueryResponse) sifClient.process(request);

List<?> recList = response.getRecords();

if (recList != null && recList.size() > 1){


System.out.println("More than one vendor with pfg party id " +
PFGVendID);
}
else if (recList != null && recList.size() == 1)
{
Record rec = (Record) recList.get(0);

Field field = rec.getField("ROWID_OBJECT");


String rowid = field.getValue().toString().trim();

SRSQuery(rowid, "C_B_PARTY");

ArrayList<String> tables = new ArrayList<String>();


tables.add("C_B_VENDOR_DTL");
tables.add("C_B_RL_ALTERNATE_ID");
tables.add("C_B_PARTY_COI");
tables.add("C_B_CONTACT");
tables.add("C_B_RL_PARTY_OPCO");
tables.add("C_B_RL_PARTY_ADDR");
tables.add("C_B_ENTERPRISE_VEN");

for(String table: tables){

request = new SearchQueryRequest();


response = new SearchQueryResponse();

password = new Password();


password.setPassword("A8563514C5769CD5");
password.setEncrypted(true);
request.setUsername("sifuser");
request.setPassword(password);

request.setSiperianObjectUid(SiperianObjectType.BASE_OBJECT.makeUid(table));
request.setFilterCriteria("PARTY_ID = ?");

params = new ArrayList<Parameter>();


params.add(new Parameter(rowid));
request.setFilterParameters(params);

recordStates = new ArrayList<HubStateIndicator>();


recordStates.add(HubStateIndicator.ACTIVE);
request.setRecordStates(recordStates);

response = (SearchQueryResponse)
sifClient.process(request);

recList = response.getRecords();

for(Iterator iter = recList.iterator(); iter.hasNext();){


rec = new Record();
rec = (Record) iter.next();

String rid =
rec.getField("ROWID_OBJECT").getValue().toString().trim();

SRSQuery(rid, table);

if(table.equalsIgnoreCase("C_B_RL_PARTY_ADDR")){
String addrRowid =
rec.getField("ADDRESS_ID").getValue().toString().trim();

SRSQuery(addrRowid, "C_B_ADDRESS");

request = new SearchQueryRequest();


response = new SearchQueryResponse();

password = new Password();


password.setPassword("A8563514C5769CD5");
password.setEncrypted(true);
request.setUsername("sifuser");
request.setPassword(password);

request.setSiperianObjectUid(SiperianObjectType.BASE_OBJECT.makeUid("C_B_VEN_ADDR_D
TL"));
request.setFilterCriteria("PARTY_ADDRESS_ID
= ?");

params = new ArrayList<Parameter>();


params.add(new Parameter(rid));
request.setFilterParameters(params);

recordStates = new
ArrayList<HubStateIndicator>();
recordStates.add(HubStateIndicator.ACTIVE);
request.setRecordStates(recordStates);

response = (SearchQueryResponse)
sifClient.process(request);

recList = response.getRecords();

for(Iterator ite = recList.iterator();


ite.hasNext();){
rec = new Record();
rec = (Record) ite.next();

String row =
rec.getField("ROWID_OBJECT").getValue().toString().trim();

SRSQuery(row, "C_B_VEN_ADDR_DTL");
}
}
}
}
}
else{
System.out.println("No active vendors with pfg party id " +
PFGVendID);
}
}

You might also like