Sie sind auf Seite 1von 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);
}
}

Das könnte Ihnen auch gefallen