use of com.netsuite.webservices.platform.core.RecordRef in project tdi-studio-se by Talend.
the class NetsuiteManagement_CXF method initializeStub.
public void initializeStub() throws Exception {
URL wsdl_locationUrl = this.getClass().getResource("/wsdl/netsuite.wsdl");
QName serviceQname = new QName("urn:platform_2014_2.webservices.netsuite.com", "NetSuiteService");
NetSuiteService service = new NetSuiteService(wsdl_locationUrl, serviceQname);
NetSuitePortType port = service.getNetSuitePort();
BindingProvider provider = (BindingProvider) port;
Map<String, Object> requestContext = provider.getRequestContext();
requestContext.put(BindingProvider.ENDPOINT_ADDRESS_PROPERTY, _url);
Preferences preferences = new Preferences();
preferences.setDisableMandatoryCustomFieldValidation(Boolean.FALSE);
preferences.setWarningAsError(Boolean.FALSE);
preferences.setIgnoreReadOnlyFields(Boolean.TRUE);
preferences.setDisableMandatoryCustomFieldValidation(Boolean.TRUE);
SearchPreferences searchPreferences = new SearchPreferences();
searchPreferences.setPageSize(this._pageSize);
searchPreferences.setBodyFieldsOnly(Boolean.valueOf(false));
RecordRef role = new RecordRef();
role.setInternalId(this._role);
Passport passport = new Passport();
passport.setEmail(this._email);
passport.setPassword(this._pwd);
passport.setRole(role);
passport.setAccount(this._account);
// Get the webservices domain for your account
GetDataCenterUrlsRequest dataCenterRequest = new GetDataCenterUrlsRequest();
dataCenterRequest.setAccount(this._account);
DataCenterUrls urls = null;
GetDataCenterUrlsResponse reponse = port.getDataCenterUrls(dataCenterRequest);
if (reponse != null && reponse.getGetDataCenterUrlsResult() != null) {
urls = reponse.getGetDataCenterUrlsResult().getDataCenterUrls();
}
if (urls == null) {
throw new Exception("Can't get a correct webservice domain! Please check your configuration or try to run again.");
}
String wsDomain = urls.getWebservicesDomain();
String endpoint = wsDomain.concat(new URL(this._url).getPath());
requestContext.put(BindingProvider.SESSION_MAINTAIN_PROPERTY, true);
requestContext.put(BindingProvider.ENDPOINT_ADDRESS_PROPERTY, endpoint);
List<Header> list = (List<Header>) requestContext.get(Header.HEADER_LIST);
if (list == null) {
list = new ArrayList<Header>();
requestContext.put(Header.HEADER_LIST, list);
}
Header searchPreferences_header = new Header(new QName("urn:messages_2014_2.platform.webservices.netsuite.com", "searchPreferences"), searchPreferences, new JAXBDataBinding(searchPreferences.getClass()));
Header preferences_header = new Header(new QName("urn:messages_2014_2.platform.webservices.netsuite.com", "preferences"), preferences, new JAXBDataBinding(preferences.getClass()));
list.add(searchPreferences_header);
list.add(preferences_header);
LoginRequest request = new LoginRequest();
request.setPassport(passport);
port.login(request);
this._port = port;
Arrays.asList(new String[] { "", "", "" });
}
use of com.netsuite.webservices.platform.core.RecordRef in project tdi-studio-se by Talend.
the class NetsuiteManagement_CXF method getSearchField.
private Object getSearchField(Class<?> searchClass, List<String> searchValue, String searchFieldName, String searchOperator) throws DatatypeConfigurationException {
Object criteria = null;
Method getFieldMethod = findMethod(searchClass, "get" + searchFieldName);
String searchType = getFieldMethod.getReturnType().getSimpleName();
if (searchType.equals("SearchStringField")) {
SearchStringField searchArgumentType = new SearchStringField();
if (searchValue != null && searchValue.size() != 0) {
searchArgumentType.setSearchValue(searchValue.get(0));
}
searchArgumentType.setOperator(SearchStringFieldOperator.fromValue(searchOperator));
criteria = searchArgumentType;
} else if (searchType.equals("SearchLongField")) {
SearchLongField searchArgumentType = new SearchLongField();
if (searchValue != null && searchValue.size() != 0) {
searchArgumentType.setSearchValue(Long.valueOf(Long.parseLong(searchValue.get(0))));
if (searchValue.size() > 1) {
searchArgumentType.setSearchValue2(Long.valueOf(Long.parseLong(searchValue.get(1))));
}
}
searchArgumentType.setOperator(SearchLongFieldOperator.fromValue(searchOperator));
criteria = searchArgumentType;
} else if (searchType.equals("SearchDateField")) {
SearchDateField searchArgumentType = new SearchDateField();
if (searchValue != null && searchValue.size() != 0) {
Calendar calValue = Calendar.getInstance();
String dateFormat = "yyyy-MM-dd";
String timeFormat = "HH:mm:ss";
String format = dateFormat + " " + timeFormat;
if (searchValue.get(0).length() == dateFormat.length()) {
format = dateFormat;
}
if (searchValue.get(0).length() == timeFormat.length()) {
searchValue.set(0, new SimpleDateFormat(dateFormat).format(calValue.getTime()) + " " + searchValue.get(0));
}
DateFormat df = new SimpleDateFormat(format);
try {
calValue.setTime(df.parse(searchValue.get(0)));
} catch (ParseException e) {
e.printStackTrace();
}
XMLGregorianCalendar xts = DatatypeFactory.newInstance().newXMLGregorianCalendar();
xts.setYear(calValue.get(Calendar.YEAR));
xts.setMonth(calValue.get(Calendar.MONTH) + 1);
xts.setDay(calValue.get(Calendar.DAY_OF_MONTH));
xts.setHour(calValue.get(Calendar.HOUR_OF_DAY));
xts.setMinute(calValue.get(Calendar.MINUTE));
xts.setSecond(calValue.get(Calendar.SECOND));
xts.setMillisecond(calValue.get(Calendar.MILLISECOND));
xts.setTimezone(calValue.get(Calendar.ZONE_OFFSET) / 60000);
searchArgumentType.setSearchValue(xts);
if (searchValue.size() > 1) {
try {
calValue.setTime(df.parse(searchValue.get(1)));
} catch (ParseException e) {
e.printStackTrace();
}
XMLGregorianCalendar xts2 = DatatypeFactory.newInstance().newXMLGregorianCalendar();
xts2.setYear(calValue.get(Calendar.YEAR));
xts2.setMonth(calValue.get(Calendar.MONTH) + 1);
xts2.setDay(calValue.get(Calendar.DAY_OF_MONTH));
xts2.setHour(calValue.get(Calendar.HOUR_OF_DAY));
xts2.setMinute(calValue.get(Calendar.MINUTE));
xts2.setSecond(calValue.get(Calendar.SECOND));
xts2.setMillisecond(calValue.get(Calendar.MILLISECOND));
xts2.setTimezone(calValue.get(Calendar.ZONE_OFFSET) / 60000);
searchArgumentType.setSearchValue2(xts2);
}
}
searchArgumentType.setOperator(SearchDateFieldOperator.fromValue(searchOperator));
criteria = searchArgumentType;
} else if (searchType.equals("SearchBooleanField")) {
SearchBooleanField searchArgumentType = new SearchBooleanField();
searchArgumentType.setSearchValue(Boolean.valueOf(searchValue.get(0)));
criteria = searchArgumentType;
} else if (searchType.equals("SearchDoubleField")) {
SearchDoubleField searchArgumentType = new SearchDoubleField();
if (searchValue != null && searchValue.size() != 0) {
searchArgumentType.setSearchValue(Double.valueOf(Double.parseDouble(searchValue.get(0))));
if (searchValue.size() > 1) {
searchArgumentType.setSearchValue2(Double.valueOf(Double.parseDouble(searchValue.get(1))));
}
}
searchArgumentType.setOperator(SearchDoubleFieldOperator.fromValue(searchOperator));
criteria = searchArgumentType;
} else if (searchType.equals("SearchMultiSelectField")) {
SearchMultiSelectField searchArgumentType = new SearchMultiSelectField();
List<RecordRef> values = searchArgumentType.getSearchValue();
for (int i = 0; i < searchValue.size(); i++) {
RecordRef ref = new RecordRef();
ref.setName(searchValue.get(i));
ref.setInternalId(searchValue.get(i));
ref.setExternalId(null);
ref.setType(null);
values.add(ref);
}
searchArgumentType.setOperator(SearchMultiSelectFieldOperator.fromValue(searchOperator));
criteria = searchArgumentType;
} else if (searchType.equals("SearchEnumMultiSelectField")) {
SearchEnumMultiSelectField searchArgumentType = new SearchEnumMultiSelectField();
searchArgumentType.getSearchValue().addAll(searchValue);
searchArgumentType.setOperator(SearchEnumMultiSelectFieldOperator.fromValue(searchOperator));
criteria = searchArgumentType;
} else if (searchType.equals("String[]")) {
SearchEnumMultiSelectField searchArgumentType = new SearchEnumMultiSelectField();
searchArgumentType.getSearchValue().addAll(searchValue);
searchArgumentType.setOperator(SearchEnumMultiSelectFieldOperator.fromValue(searchOperator));
criteria = searchArgumentType;
} else {
throw new IllegalArgumentException("Unsupported search field type: " + searchType);
}
return criteria;
}
use of com.netsuite.webservices.platform.core.RecordRef in project tdi-studio-se by Talend.
the class NetsuiteManagement_CXF method get.
public Record get(String entitytype, String id) throws Exception {
String typeName = TalendComponentGenerator.toInitialLower(TalendComponentGenerator.getEntityClass(entitytype).getSimpleName());
RecordRef ref = new RecordRef();
ref.setInternalId(id);
ref.setType(RecordType.fromValue(typeName));
GetRequest getRequest = new GetRequest();
getRequest.setBaseRef(ref);
GetResponse getResponse = getPort().get(getRequest);
if (getResponse.getReadResponse().getStatus().isIsSuccess()) {
return getResponse.getReadResponse().getRecord();
}
return null;
}
use of com.netsuite.webservices.platform.core.RecordRef in project tdi-studio-se by Talend.
the class NetsuiteManagement_CXF method delete.
public void delete(String entitytype, String id) throws Exception {
String typeName = TalendComponentGenerator.toInitialLower(Class.forName(entitytype).getSimpleName());
RecordRef recordRef = new RecordRef();
recordRef.setType(RecordType.fromValue(typeName));
recordRef.setInternalId(id);
DeleteRequest deleteRequest = new DeleteRequest();
deleteRequest.setBaseRef(recordRef);
DeleteResponse response = getPort().delete(deleteRequest);
if (!response.getWriteResponse().getStatus().isIsSuccess()) {
throw new NetsuiteException(getErrorCodes(response.getWriteResponse().getStatus()), getErrorMessages(response.getWriteResponse().getStatus()));
}
}
Aggregations