on 03-17-2017 7:51 PM
Hi all, I am working on a web service to create a supplier contact. The script seems to be working fine to get the supplier and add the contact but I am having problems when I try to use the "Reassign to Directory Account" in the Account Management Tab under contacts. I am setting the dirEntry value which would seem to be the way to set the reassign but I am getting the error: "This field is required and must have a valid value" which suggests that it is not setting anything in the account management tab.
My script:
common.validateParams(params, getRequiredParams());
String externalId = (String)params.get(PARAM_ID);
vendor = common.findForEditByExternalId(externalId);
log.setLogMessage("vendor found" + vendor);
Logger.error(log);
if (vendor == null) {
ApplicationException ae = new ApplicationException(session, "exception.contactservice.no_vendordoc_found");
ae.setMessageModifiers(new Object[] { vendor });
throw ae;
}
ContactIBeanHomeIfc contactHome = (ContactIBeanHomeIfc) IBeanHomeLocator.lookup(session, ContactIBeanHomeIfc.sHOME_NAME);
log.setLogMessage("contacts" + contactHome.findByName(data.getName()));
Logger.error(log);
AssociativeCollectionIfc contactColl = vendor.getCollnContact();
ContactIBeanIfc contact = (ContactIBeanIfc) contactColl.create();
if (data.isSetFirstName()) {
contact.setFirstName(data.getFirstName());
}
log.setLogMessage("Set Last Name");
Logger.error(log);
if (data.isSetLastName()) {
contact.setLastName(data.getLastName());
}
log.setLogMessage("Set Email");
Logger.error(log);
if (data.isSetEmail()) {
contact.setEmail(data.getEmail());
}
log.setLogMessage("Set Name");
Logger.error(log);
if (data.isSetName()) {
contact.setName(data.getName());
}
log.setLogMessage("Set Currency");
Logger.error(log);
contact.setCurrency(vendor.getCurrencyObjRef());
log.setLogMessage("Set Language");
Logger.error(log);
contact.setDisplayLanguage(vendor.getDisplayLanguage());
log.setLogMessage("Supplier Contact Data After-" + contact.getName());
Logger.error(log);
log.setLogMessage("Supplier Contact Data-" + contact.getEmail());
Logger.error(log);
log.setLogMessage("Populated contact" + contact);
Logger.error(log);
vendor.getCollnContact().add(contact);
log.setLogMessage("Contact Added-" + vendor.getCollnContact());
Logger.error(log);
// create your new user bean
//Add code for abs account - this is all test stuff
//create account home
AbsAccountHomeIfc absHome = (AbsAccountHomeIfc)HomeLocator.lookup(session, "upp.user_account");
log.setLogMessage("Created abs account home");
Logger.error(log);
AbsAccount acct = (AbsAccount) absHome.create();
log.setLogMessage("Created abs acct");
Logger.error(log);
DirectoryObjectReference dirEntry = acct.getDirectoryEntry();
dirEntry.setUserId(contact.getName());
dirEntry.setDirectoryId(contact.getDirectoryConfiguration().getDisplayName());
log.setLogMessage("Directory Id" + dirEntry.getDirectoryId());
Logger.error(log);
log.setLogMessage("Display class" + dirEntry.getClassId());
Logger.error(log);
log.setLogMessage("Display user" + dirEntry.getUserId());
Logger.error(log);
log.setLogMessage("Display class" + dirEntry.getClass());
Logger.error(log);
vendor.setBuyerContactObjRef(acct.getAccountObjectReference());
log.setLogMessage("Set buyr contact reference");
Logger.error(log);
/* acct.getAclId().setDisplayName(contact.getName());*/
acct.setExternalId(data.getName());
acct.setName(data.getName());
log.setLogMessage("set name 1" + acct.getName());
Logger.error(log);
acct.setDisplayName(data.getName());
log.setLogMessage("set display name 1" + acct.getDisplayName());
Logger.error(log);
log.setLogMessage("set dir cred before" + acct.getDirectoryCredentials());
Logger.error(log);
acct.setDirectoryCredentials(data.getName());
log.setLogMessage("set dir cred" + acct.getDirectoryCredentials());
Logger.error(log);
log.setLogMessage("set dir princ before" + acct.getDirectoryPrincipal());
Logger.error(log);
acct.setDirectoryPrincipal(contact.getName());
log.setLogMessage("set dir princ" + acct.getDirectoryPrincipal());
Logger.error(log);
acct.setLoginId(data.getName());
acct.setFullDN(data.getName());
acct.setSynchWithLDAP(true);
acct.setUniqueDocName(data.getName());
acct.setDirectoryEntry(dirEntry);
log.setLogMessage("Created dirEntry" + dirEntry);
Logger.error(log);
//create account ifc
log.setLogMessage("account details before save" + acct);
Logger.error(log);
absHome.save(acct); //got an error here that the user was already created ************working
log.setLogMessage("saved abs account dir");
Logger.error(log);
common.getHome(ContactIBeanHomeIfc.sHOME_NAME).save(contact);
log.setLogMessage("saved contact");
Logger.error(log);
common.getHome(VendorIBeanHomeIfc.sHOME_NAME).save(vendor);
log.setLogMessage("Saved vendor");
Logger.error(log);
User | Count |
---|---|
1 | |
1 | |
1 | |
1 |
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.