isValidKFSAccounts(List of (kfsChartCode, kfsAcctNumber, effectiveDate))
This service is used to validate KFS account codes. Returns an XML result set with a value of true or false (example isValidKFSAccounts result) for each chart and account
- This is NOT recommended to pass in same value of (kfsChartCode, kfsAcctNumber) but with different effectiveDate. An unexpected result maybe returned.
- The order of kfsChartCode, kfsAcctNumber, effectiveDate CANNOT be swapped.
- effectiveDate has to be valid. Null will be returned otherwise.
Input Specifications
Index | Parameter | Description | Required? | Data Type (max length) | Example |
---|---|---|---|---|---|
0 | kfsChartCode | KFS Chart Code | Yes | String(2) | 'IR' |
1 | kfsAcctNumber | KFS Account Number | Yes | String(7) | '1234567' |
2 | effectiveDate | The date the KFS account needs to be valid | No (default is today's date) | String(8) YYYYMMDD | '20120701' (begin fiscal year 2012/2013) |
DB Query
Old: select distinct case when not exists (select * FROM dwhs_ods..ca_account_t a where a.account_nbr= '<kfsAcctNumber>' AND a.fin_coa_cd= '<kfsChartCode>' AND a.ACCT_CLOSED_IND <> 'Y' AND ( a.ACCT_EXPIRATION_DT >= getdate() or a.ACCT_EXPIRATION_DT IS NULL) AND (a.ACCT_EFFECT_DT <= <effectiveDate> ) ) then 'false' else 'true' end New: SELECT a.FIN_COA_CD, a.ACCOUNT_NBR, 'true' AS VALID FROM dwhs_ods..ca_account_t a WHERE a.ACCT_CLOSED_IND <> 'Y' AND ( a.ACCT_EXPIRATION_DT >= getdate() or a.ACCT_EXPIRATION_DT IS NULL) AND ( (a.account_nbr= '1000766' AND a.fin_coa_cd= 'IR' AND a.ACCT_EFFECT_DT <= getdate()) OR (a.account_nbr= '1000768' AND a.fin_coa_cd= 'IR' AND a.ACCT_EFFECT_DT <= convert(datetime,'20100701',112)) OR (a.account_nbr= '1000767' AND a.fin_coa_cd= 'IR' AND a.ACCT_EFFECT_DT <= getdate()) );
Result Schema: A list of following elements (AccountValidation.java)
Parameter | Description | Data Type | Example |
---|---|---|---|
kfsChartCode | KFS Chart Code | String (2) | 'IR' |
kfsAcctNumber | KFS Account Number | String (7) | '1234567' |
isValid | Is the Chart/Account Active for that effective date (or today)? | boolean | true |
WS Example
Request
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:adc="http://www.adcom.uci.edu"> <soapenv:Header/> <soapenv:Body> <adc:isValidKFSAccounts> <kfsAccountList> <item>IR</item> <item>1000766</item> </kfsAccountList> <kfsAccountList> <item>IR</item> <item>1000767</item> </kfsAccountList> <kfsAccountList> <item>IR</item> <item>1000768</item> <item>20010701</item> </kfsAccountList> <kfsAccountList> <item>XX</item> <item>1234</item> <item>20080101</item> </kfsAccountList> </adc:isValidKFSAccounts> </soapenv:Body> </soapenv:Envelope>
Response
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"> <soap:Body> <ns2:isValidKFSAccountsResponse xmlns:ns2="http://www.adcom.uci.edu"> <return> <kfsAcctNumber>1000767</kfsAcctNumber> <kfsChartCode>IR</kfsChartCode> <valid>true</valid> </return> <return> <kfsAcctNumber>1000768</kfsAcctNumber> <kfsChartCode>IR</kfsChartCode> <valid>false</valid> </return> <return> <kfsAcctNumber>1234</kfsAcctNumber> <kfsChartCode>XX</kfsChartCode> <valid>false</valid> </return> <return> <kfsAcctNumber>1000766</kfsAcctNumber> <kfsChartCode>IR</kfsChartCode> <valid>true</valid> </return> </ns2:isValidKFSAccountsResponse> </soap:Body> </soap:Envelope>
Java Client Example
DWHServerService dss = new DWHServerService(); DWHServer ds = dss.getDWHServerPortCustom(); StringArray sa20 = new StringArray(); sa20.getItem().add("IR"); sa20.getItem().add("1000766"); StringArray sa21 = new StringArray(); sa21.getItem().add("IR"); sa21.getItem().add("1000767"); StringArray sa22 = new StringArray(); sa22.getItem().add("IR"); sa22.getItem().add("1000768"); sa22.getItem().add("20090701"); StringArray sa23 = new StringArray(); sa23.getItem().add("XX"); sa23.getItem().add("1234"); sa23.getItem().add("20130321"); List<AccountValidation> resultList2 = ds.isValidKFSAccounts(Arrays.asList(sa20, sa21, sa22, sa23)); if (resultList2 != null) { for (Iterator i = resultList2.iterator(); i.hasNext();) { AccountValidation element = (AccountValidation)i.next(); System.out.println("\t" + element.getKfsChartCode() + "/" + element.getKfsAcctNumber() + " : " + element.isValid()); } } else { System.out.println("something bad happened...please check your query"); }
isValidKFSExpenseAccounts(List of (kfsChartCode, kfsAcctNumber, effectiveDate))
This service is used to validate KFS chart and expense account codes. Returns an XML result set with a value of true or false for each chart/account
- This is NOT recommended to pass in same value of (kfsChartCode, kfsAcctNumber) but with different effectiveDate. An unexpected result maybe returned.
- The order of kfsChartCode, kfsAcctNumber, effectiveDate CANNOT be swapped.
- effectiveDate has to be valid. Null will be returned otherwise.
Input Specifications
Index | Parameter | Description | Required? | Data Type (max length) | Example |
---|---|---|---|---|---|
0 | kfsChartCode | KFS Chart Code | Yes | String (2) | 'IR' |
1 | kfsAcctNumber | KFS Account Number | Yes | String(7) | '1234567' |
2 | effectiveDate | Date the KFS account needs to be valid | No (default is today's date) | String(8) YYYYMMDD | '20120701' (begin fiscal year 2012/2013) |
DB Query
Old: select distinct case when not exists (select * FROM dwhs_ods..ca_account_t a where a.account_nbr= '<kfsAcctNumber>' AND a.fin_coa_cd= '<kfsChartCode>' AND a.ACCT_CLOSED_IND <> 'Y' AND ( a.ACCT_EXPIRATION_DT >= getdate() or a.ACCT_EXPIRATION_DT IS NULL) AND (a.ACCT_EFFECT_DT <= <effectiveDate> ) AND a.ACCT_TYP_CD = 'EX') then 'false' else 'true' end New: SELECT a.FIN_COA_CD, a.ACCOUNT_NBR,'true' AS VALID FROM dwhs_ods..ca_account_t a WHERE a.ACCT_CLOSED_IND <> 'Y' AND (a.ACCT_EXPIRATION_DT >= getdate() OR a.ACCT_EXPIRATION_DT IS NULL) AND a.ACCT_TYP_CD = 'EX' AND ( (a.ACCOUNT_NBR= '1000766' AND a.FIN_COA_CD= 'IR' AND a.ACCT_EFFECT_DT <= convert(datetime,'20100701',112)) OR (a.ACCOUNT_NBR= '1008543' AND a.FIN_COA_CD= 'IR' AND a.ACCT_EFFECT_DT <= getdate()) );
Result Schema: A list of following elements (AccountValidation.java)
chart code, account code and true or false
Parameter | Description | Data Type | Example |
---|---|---|---|
kfsChartCode | KFS Chart Code | String (2) | 'IR' |
kfsAcctNumber | KFS Account Number | String (7) | '1234567' |
isValid | Is the Chart/Account Active for that effective date (or today)? | boolean | true |
WS Example
Request
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:adc="http://www.adcom.uci.edu"> <soapenv:Header/> <soapenv:Body> <adc:isValidKFSExpenseAccounts> <kfsAccountList> <item>IR</item> <item>1000766</item> </kfsAccountList> <kfsAccountList> <item>IR</item> <item>1008543</item> <item>20110701</item> </kfsAccountList> <kfsAccountList> <item>XX</item> <item>1234</item> <item>20110321</item> </kfsAccountList> </adc:isValidKFSExpenseAccounts> </soapenv:Body> </soapenv:Envelope>
Response
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"> <soap:Body> <ns2:isValidKFSExpenseAccountsResponse xmlns:ns2="http://www.adcom.uci.edu"> <return> <kfsAcctNumber>1008543</kfsAcctNumber> <kfsChartCode>IR</kfsChartCode> <valid>true</valid> </return> <return> <kfsAcctNumber>1234</kfsAcctNumber> <kfsChartCode>XX</kfsChartCode> <valid>false</valid> </return> <return> <kfsAcctNumber>1000766</kfsAcctNumber> <kfsChartCode>IR</kfsChartCode> <valid>false</valid> </return> </ns2:isValidKFSExpenseAccountsResponse> </soap:Body> </soap:Envelope>
Java Client Example
DWHServerService dss = new DWHServerService(); DWHServer ds = dss.getDWHServerPortCustom(); StringArray sa30 = new StringArray(); sa30.getItem().add("IR"); sa30.getItem().add("1000766"); StringArray sa31 = new StringArray(); sa31.getItem().add("IR"); sa31.getItem().add("1008543"); sa31.getItem().add("20110701"); StringArray sa32 = new StringArray(); sa32.getItem().add("XX"); sa32.getItem().add("1234"); sa32.getItem().add("20110321"); List<AccountValidation> resultList3 = ds.isValidKFSExpenseAccounts(Arrays.asList(sa30, sa31,sa32)); if (resultList3 != null) { for (Iterator i = resultList3.iterator(); i.hasNext();) { AccountValidation element = (AccountValidation)i.next(); System.out.println("\t" + element.getKfsChartCode() + "/" + element.getKfsAcctNumber() + " : " + element.isValid()); } } else { System.out.println("something bad happened...please check your query"); }
getValidKFSAccounts(List of (kfsChartCode, kfsAcctNumber))
This service is used retrieve valid KFS account and related attributes. Returns an XML result set with a list of accounts (example getAllValidKFSAccounts result).
Input Specifications
Index | Parameter | Description | Required? | Data Type (max length) | Example |
---|---|---|---|---|---|
0 | kfsChartCode | KFS Chart Code | Yes | String (2) | 'IR' |
1 | kfsAcctNumber | KFS Account Number | Yes | String (7) | '1234567' |
DB Query
SELECT a.FIN_COA_CD ,a.ACCOUNT_NBR ,a.ACCOUNT_NM ,a.ACCT_FSC_OFC_UID ,a.ACCT_SPVSR_UNVL_ID ,a.ACCT_MGR_UNVL_ID ,a.ORG_CD ,a.ACCT_TYP_CD ,a.ACCT_PHYS_CMP_CD ,a.SUB_FUND_GRP_CD ,a.ACCT_FRNG_BNFT_CD ,a.FIN_HGH_ED_FUNC_CD ,a.ACCT_RSTRC_STAT_CD ,a.ACCT_RSTRC_STAT_DT ,a.ACCT_CITY_NM ,a.ACCT_STATE_CD ,a.ACCT_STREET_ADDR ,a.ACCT_ZIP_CD ,a.RPTS_TO_FIN_COA_CD ,a.RPTS_TO_ACCT_NBR ,a.ACCT_CREATE_DT ,a.ACCT_EFFECT_DT ,a.ACCT_EXPIRATION_DT ,a.CONT_FIN_COA_CD ,a.CONT_ACCOUNT_NBR ,a.ENDOW_FIN_COA_CD ,a.ENDOW_ACCOUNT_NBR ,a.CONTR_CTRL_FCOA_CD ,a.CONTR_CTRLACCT_NBR ,a.INCOME_FIN_COA_CD ,a.INCOME_ACCOUNT_NBR ,a.ACCT_ICR_TYP_CD ,a.AC_CSTM_ICREXCL_CD ,a.FIN_SERIES_ID ,a.ICR_FIN_COA_CD ,a.ICR_ACCOUNT_NBR ,a.ACCT_IN_FP_CD ,a.BDGT_REC_LVL_CD ,a.ACCT_SF_CD ,a.ACCT_PND_SF_CD ,a.FIN_EXT_ENC_SF_CD ,a.FIN_INT_ENC_SF_CD ,a.FIN_PRE_ENC_SF_CD ,a.FIN_OBJ_PRSCTRL_CD ,a.CG_CFDA_NBR ,a.ACCT_OFF_CMP_IND ,a.ACCT_CLOSED_IND ,CG_ACCT_RESP_ID ,b.UC_LOC_CD ,b.UC_ACCT_NBR ,b.UC_FUND_NBR ,b.UCI_CAPITAL_CAT_CD FROM ca_account_t a JOIN ca_account_ext_t b on (a.FIN_COA_CD = b.FIN_COA_CD and a.ACCOUNT_NBR = b.ACCOUNT_NBR) WHERE a.ACCT_CLOSED_IND <> 'Y' AND (a.ACCT_EXPIRATION_DT >= getdate() or a.ACCT_EXPIRATION_DT IS NULL) AND a.ACCT_EFFECT_DT <= GETDATE() AND ((a.FIN_COA_CD='<kfsChartCode1>' AND ACCOUNT_NBR='<kfsAcctNumber1>') OR (a.FIN_COA_CD='<kfsChartCode2>' AND ACCOUNT_NBR='<kfsAcctNumber2>') OR . . . etc )
Result Schema: A list of following elements (AccountDetails.java)
DB Parameter | Java Parameter | Description | Data Type | Example |
---|---|---|---|---|
FIN_COA_CD | kfsChartCode | KFS Chart Code | String (2) | 'IR' |
ACCOUNT_NBR | kfsAcctNumber | KFS Account Number | String (7) | '1234567' |
ACCOUNT_NM | kfsAcctName | KFS Account Name | String (40) | |
ACCT_FSC_OFC_UID | kfsAcctFiscalOfficerId | KFS Account Fiscal Officer ID | String | |
ACCT_SPVSR_UNVL_ID | kfsAcctSupervisorId | KFS Account Supervisor ID | String | |
ACCT_MGR_UNVL_ID | kfsAcctManagerId | KFS Account Manager ID | String | |
ORG_CD | kfsOrgCode | KFS Organization Code | String | |
ACCT_TYP_CD | kfsAcctTypeCode | KFS Account Type Code | String | |
ACCT_PHYS_CMP_CD | kfsAcctCampusCode | KFS Account Campus Code | String | |
SUB_FUND_GRP_CD | kfsSubFundCode | KFS Sub Fund Group Code | String | |
ACCT_FRNG_BNFT_CD | kfsAcctFringeBenefitCode | KFS Account Fringe Benefit Code | String | |
FIN_HGH_ED_FUNC_CD | kfsHigherEduFundCode | KFS Higher Education Function Code | String | |
ACCT_RSTRC_STAT_CD | kfsAcctRestrictedCode | KFS Account Restricted Status Code | String | |
ACCT_RSTRC_STAT_DT | kfsAcctRestrictedDate | KFS Account Restricted Status Date | String | |
ACCT_CITY_NM | kfsAcctCity | KFS Account City Name | String | |
ACCT_STATE_CD | kfsAcctState | KFS Account State Code | String | |
ACCT_STREET_ADDR | kfsAcctAddress | KFS Account Street Address | String | |
ACCT_ZIP_CD | kfsAcctZip | KFS Account Zip Code | String | |
RPTS_TO_FIN_COA_CD | kfsReportToChartCode | KFS Reports To Chart Code | String | |
RPTS_TO_ACCT_NBR | kfsReportToAcctNumber | KFS Reports To Account Number | String | |
ACCT_CREATE_DT | kfsAcctCreateDate | KFS Account Create Date | String | |
ACCT_EFFECT_DT | kfsAcctEffectiveDate | KFS Account Effective Date | String | |
ACCT_EXPIRATION_DT | kfsAcctExpDate | KFS Account Expiration Date | String | |
CONT_FIN_COA_CD | kfsContChartCode | KFS Continuation Chart Code | String | |
CONT_ACCOUNT_NBR | kfsContAcctNumber | KFS Continuation Account Number | String | |
ENDOW_FIN_COA_CD | kfsEndowChartCode | KFS Endowment Chart Code | String | |
ENDOW_ACCOUNT_NBR | kfsEndowAcctNumber | KFS Endowment Account Number | String | |
CONTR_CTRL_FCOA_CD | kfsCandGChartCode | KFS C&G Control Chart Code | String | |
CONTR_CTRLACCT_NBR | kfsCandGAcctNumber | KFS C&G Control Account Number | String | |
INCOME_FIN_COA_CD | kfsIncomeChartCode | KFS Income Stream Chart Code | String | |
INCOME_ACCOUNT_NBR | kfsIncomeAcctNumber | KFS Income Stream Account Number | String | |
ACCT_ICR_TYP_CD | kfsICRTypeCode | KFS ICR Type Code | String | |
AC_CSTM_ICREXCL_CD | kfsCustomICRCode | KFS Custom ICR Code | String | |
FIN_SERIES_ID | kfsICRRateCode | KFS ICR Rate Code | String | |
ICR_FIN_COA_CD | kfsICRChartCode | KFS ICR Credit Chart Code | String | |
ICR_ACCOUNT_NBR | kfsICRAcctNumber | KFS ICR Credit Account Number | String | |
ACCT_IN_FP_CD | kfsTPSFCode | KFS Transaction Processing Sufficient Funds Check Code | String | |
BDGT_REC_LVL_CD | kfsBudgetLevelCode | KFS Budget Recording Level Code | String | |
ACCT_SF_CD | kfsAcctSFCode | KFS Account Sufficient Fund Check Code | String | |
ACCT_PND_SF_CD | kfsAcctPSFCode | KFS Account Pending Sufficient Fund Check Code | String | |
FIN_EXT_ENC_SF_CD | kfsEESFCode | KFS External Encumbrance Sufficient Fund Check Code | String | |
FIN_INT_ENC_SF_CD | kfsIESFCode | KFS Internal Encumbrance Sufficient Fund Check Code | String | |
FIN_PRE_ENC_SF_CD | kfsPESFCode | KFS Pre-Encumbrance Sufficient Fund Check Code | String | |
FIN_OBJ_PRSCTRL_CD | kfsObjPCCode | KFS Object Presence Control Code | String | |
CG_CFDA_NBR | kfsCGCFDANumber | KFS CG CFDA number | String | |
ACCT_OFF_CMP_IND | kfsAcctOffCampusCode | KFS Account Off Campus Indicator Code | String | |
ACCT_CLOSED_IND | kfsAcctClosedCode | KFS Account Closed Indicator Code | String | |
CG_ACCT_RESP_ID | kfsAcctRespId | KFS Account Responsibility ID | String | |
UC_LOC_CD | ucLocationCode | FS Location Code (legacy) | String(1) | |
UC_ACCT_NBR | ucAccountCode | FS Account Code (legacy) | String(6) | |
UC_FUND_NBR | ucFundCode | FS Fund Code (legacy) | String(5) |
WS Example
Request
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:adc="http://www.adcom.uci.edu"> <soapenv:Header/> <soapenv:Body> <adc:getValidKFSAccounts> <kfsAccountList> <item>IR</item> <item>1000766</item> </kfsAccountList> <kfsAccountList> <item>IR</item> <item>1008543</item> </kfsAccountList> <kfsAccountList> <item>XX</item> <item>1234</item> </kfsAccountList> <kfsAccountList> <item>IR</item> <item>1234567</item> </kfsAccountList> </adc:getValidKFSAccounts> </soapenv:Body> </soapenv:Envelope>
Response
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"> <soap:Body> <ns2:getValidKFSAccountsResponse xmlns:ns2="http://www.adcom.uci.edu"> <return> <kfsAcctAddress>Campus Dr</kfsAcctAddress> <kfsAcctCampusCode>IR</kfsAcctCampusCode> <kfsAcctCity>Irvine</kfsAcctCity> <kfsAcctClosedCode>N</kfsAcctClosedCode> <kfsAcctCreateDate>2012-05-13</kfsAcctCreateDate> <kfsAcctEffectiveDate>2011-07-01</kfsAcctEffectiveDate> <kfsAcctFringeBenefitCode>Y</kfsAcctFringeBenefitCode> <kfsAcctManagerId>000000066894</kfsAcctManagerId> <kfsAcctName>CA-BOA- CAMPUS - 1233-12007 110001-18888</kfsAcctName> <kfsAcctNumber>1000766</kfsAcctNumber> <kfsAcctOffCampusCode>N</kfsAcctOffCampusCode> <kfsAcctPSFCode>N</kfsAcctPSFCode> <kfsAcctRestrictedCode>U</kfsAcctRestrictedCode> <kfsAcctSFCode>N</kfsAcctSFCode> <kfsAcctState>CA</kfsAcctState> <kfsAcctSupervisorId>000000960010</kfsAcctSupervisorId> <kfsAcctTypeCode>BS</kfsAcctTypeCode> <kfsAcctZip>92697</kfsAcctZip> <kfsBudgetLevelCode>C</kfsBudgetLevelCode> <kfsCandGAcctNumber>9975430</kfsCandGAcctNumber> <kfsCandGChartCode>MC</kfsCandGChartCode> <kfsChartCode>IR</kfsChartCode> <kfsContAcctNumber>0</kfsContAcctNumber> <kfsContChartCode>0</kfsContChartCode> <kfsEESFCode>N</kfsEESFCode> <kfsEndowChartCode>0</kfsEndowChartCode> <kfsFringeBenefitAcct>0</kfsFringeBenefitAcct> <kfsFringeBenefitChart>0</kfsFringeBenefitChart> <kfsHigherEduFundCode>NA</kfsHigherEduFundCode> <kfsICRTypeCode>0</kfsICRTypeCode> <kfsIESFCode>N</kfsIESFCode> <kfsIncomeAcctNumber>0</kfsIncomeAcctNumber> <kfsIncomeChartCode>0</kfsIncomeChartCode> <kfsObjPCCode>N</kfsObjPCCode> <kfsOrgCode>0922</kfsOrgCode> <kfsPESFCode>N</kfsPESFCode> <kfsSubFundCode>STC&G</kfsSubFundCode> <kfsTPSFCode>Y</kfsTPSFCode> <ucAccountCode>110001</ucAccountCode> <ucFundCode>18888</ucFundCode> <ucLocationCode>9</ucLocationCode> </return> <return> <kfsAcctAddress>Campus Dr</kfsAcctAddress> <kfsAcctCampusCode>IR</kfsAcctCampusCode> <kfsAcctCity>Irvine</kfsAcctCity> <kfsAcctClosedCode>N</kfsAcctClosedCode> <kfsAcctCreateDate>2012-05-13</kfsAcctCreateDate> <kfsAcctEffectiveDate>2011-07-01</kfsAcctEffectiveDate> <kfsAcctFiscalOfficerId>000000061717</kfsAcctFiscalOfficerId> <kfsAcctFringeBenefitCode>Y</kfsAcctFringeBenefitCode> <kfsAcctManagerId>000000121170</kfsAcctManagerId> <kfsAcctName>MERAGE/DEAN'S OFFICE/EDUCAT 400100-09535</kfsAcctName> <kfsAcctNumber>1008543</kfsAcctNumber> <kfsAcctOffCampusCode>N</kfsAcctOffCampusCode> <kfsAcctPSFCode>N</kfsAcctPSFCode> <kfsAcctRestrictedCode>U</kfsAcctRestrictedCode> <kfsAcctSFCode>N</kfsAcctSFCode> <kfsAcctState>CA</kfsAcctState> <kfsAcctSupervisorId>000000082229</kfsAcctSupervisorId> <kfsAcctTypeCode>EX</kfsAcctTypeCode> <kfsAcctZip>92697</kfsAcctZip> <kfsBudgetLevelCode>C</kfsBudgetLevelCode> <kfsCandGAcctNumber>9975430</kfsCandGAcctNumber> <kfsCandGChartCode>MC</kfsCandGChartCode> <kfsChartCode>IR</kfsChartCode> <kfsContAcctNumber>0</kfsContAcctNumber> <kfsContChartCode>0</kfsContChartCode> <kfsEESFCode>N</kfsEESFCode> <kfsEndowChartCode>0</kfsEndowChartCode> <kfsFringeBenefitAcct>0</kfsFringeBenefitAcct> <kfsFringeBenefitChart>0</kfsFringeBenefitChart> <kfsHigherEduFundCode>INST</kfsHigherEduFundCode> <kfsICRTypeCode>0</kfsICRTypeCode> <kfsIESFCode>N</kfsIESFCode> <kfsIncomeAcctNumber>0</kfsIncomeAcctNumber> <kfsIncomeChartCode>0</kfsIncomeChartCode> <kfsObjPCCode>N</kfsObjPCCode> <kfsOrgCode>0049</kfsOrgCode> <kfsPESFCode>N</kfsPESFCode> <kfsSubFundCode>OPPFNO</kfsSubFundCode> <kfsTPSFCode>Y</kfsTPSFCode> <ucAccountCode>400100</ucAccountCode> <ucFundCode>09535</ucFundCode> <ucLocationCode>9</ucLocationCode> </return> </ns2:getValidKFSAccountsResponse> </soap:Body> </soap:Envelope>
Java Client Example
DWHServerService dss = new DWHServerService(); DWHServer ds = dss.getDWHServerPortCustom(); StringArray sa40 = new StringArray(); sa40.getItem().add("IR"); sa40.getItem().add("1000766"); StringArray sa41 = new StringArray(); sa41.getItem().add("IR"); sa41.getItem().add("1008543"); StringArray sa42 = new StringArray(); sa42.getItem().add("XX"); sa42.getItem().add("1234"); StringArray sa43 = new StringArray(); sa43.getItem().add("IR"); sa43.getItem().add("1234567"); List<AccountDetails> resultList4 = ds.getValidKFSAccounts(Arrays.asList(sa40, sa41,sa42,sa43)); if (resultList4 != null) { for (Iterator i = resultList4.iterator(); i.hasNext();) { AccountDetails element = (AccountDetails)i.next(); System.out.println("\t" + element.getKfsChartCode() + "/" + element.getKfsAcctNumber() + " : " + element.getKfsAcctName()); } } else { System.out.println("something bad happened...please check your query"); }
getAllKFSAccounts()
No input parameter, ALL active KFS account details will be returned in result set.
USE WITH CAUTION since it may be returned a huge list of objects that consumes huge size of memory.
The best practice is using getAllKFSAccountsPK() and getValidKFSAccount() combined. Please see example in getAllKFSAccountsPK() section.
DB Query
SELECT a.FIN_COA_CD ,a.ACCOUNT_NBR ,a.ACCOUNT_NM ,a.ACCT_FSC_OFC_UID ,a.ACCT_SPVSR_UNVL_ID ,a.ACCT_MGR_UNVL_ID ,a.ORG_CD ,a.ACCT_TYP_CD ,a.ACCT_PHYS_CMP_CD ,a.SUB_FUND_GRP_CD ,a.ACCT_FRNG_BNFT_CD ,a.FIN_HGH_ED_FUNC_CD ,a.ACCT_RSTRC_STAT_CD ,a.ACCT_RSTRC_STAT_DT ,a.ACCT_CITY_NM ,a.ACCT_STATE_CD ,a.ACCT_STREET_ADDR ,a.ACCT_ZIP_CD ,a.RPTS_TO_FIN_COA_CD ,a.RPTS_TO_ACCT_NBR ,a.ACCT_CREATE_DT ,a.ACCT_EFFECT_DT ,a.ACCT_EXPIRATION_DT ,a.CONT_FIN_COA_CD ,a.CONT_ACCOUNT_NBR ,a.ENDOW_FIN_COA_CD ,a.ENDOW_ACCOUNT_NBR ,a.CONTR_CTRL_FCOA_CD ,a.CONTR_CTRLACCT_NBR ,a.INCOME_FIN_COA_CD ,a.INCOME_ACCOUNT_NBR ,a.ACCT_ICR_TYP_CD ,a.AC_CSTM_ICREXCL_CD ,a.FIN_SERIES_ID ,a.ICR_FIN_COA_CD ,a.ICR_ACCOUNT_NBR ,a.ACCT_IN_FP_CD ,a.BDGT_REC_LVL_CD ,a.ACCT_SF_CD ,a.ACCT_PND_SF_CD ,a.FIN_EXT_ENC_SF_CD ,a.FIN_INT_ENC_SF_CD ,a.FIN_PRE_ENC_SF_CD ,a.FIN_OBJ_PRSCTRL_CD ,a.CG_CFDA_NBR ,a.ACCT_OFF_CMP_IND ,a.ACCT_CLOSED_IND ,CG_ACCT_RESP_ID ,b.UC_LOC_CD ,b.UC_ACCT_NBR ,b.UC_FUND_NBR ,b.UCI_CAPITAL_CAT_CD FROM ca_account_t a JOIN ca_account_ext_t b on (a.FIN_COA_CD = b.FIN_COA_CD and a.ACCOUNT_NBR = b.ACCOUNT_NBR) WHERE a.ACCT_CLOSED_IND <> 'Y' AND (a.ACCT_EXPIRATION_DT >= getdate() or a.ACCT_EXPIRATION_DT IS NULL) AND (a.ACCT_EFFECT_DT <= GETDATE())
Result Schema: SAME as getValidKFSAccounts
WS Example
Request
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:adc="http://www.adcom.uci.edu"> <soapenv:Header/> <soapenv:Body> <adc:getAllKFSAccounts/> </soapenv:Body> </soapenv:Envelope>
Response (See getValidKFSAccounts)
Java Client Example
DWHServerService dss = new DWHServerService(); DWHServer ds = dss.getDWHServerPortCustom(); List<AccountDetails> resultList5 = ds.getAllKFSAccounts(); if (resultList5 != null) { //for (Iterator i = resultList5.iterator(); i.hasNext();) { // AccountDetails element = (AccountDetails)i.next(); // System.out.println("Result List key: " + element.toString()); //} System.out.println("total size: " + resultList5.size()); System.out.println("the 1st item ChartCode / AcctNumber: " + (AccountDetails)resultList5.get(0)).getKfsChartCode() + " / " + ((AccountDetails)resultList5.get(0)).getKfsAcctNumber()); } else { System.out.println("something bad happened...please check your query"); }
getAllKFSAccountsPK()
No input parameter, ALL active KFS account with chart code and account number only will be returned in result set.
DB Query
SELECT a.FIN_COA_CD,a.ACCOUNT_NBR FROM ca_account_t a LEFT OUTER JOIN ca_account_ext_t b on (a.FIN_COA_CD = b.FIN_COA_CD and a.ACCOUNT_NBR = b.ACCOUNT_NBR) WHERE a.ACCT_CLOSED_IND <> 'Y' AND (a.ACCT_EXPIRATION_DT >= getdate() or a.ACCT_EXPIRATION_DT IS NULL) AND (a.ACCT_EFFECT_DT <= GETDATE())
Result Schema: SAME as getValidKFSAccounts
WS Example
Request
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:adc="http://www.adcom.uci.edu"> <soapenv:Header/> <soapenv:Body> <adc:getAllKFSAccountsPK/> </soapenv:Body> </soapenv:Envelope>
Response
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"> <soap:Body> <ns2:getAllKFSAccountsPKResponse xmlns:ns2="http://www.adcom.uci.edu"> <return> <kfsAcctNumber>1067496</kfsAcctNumber> <kfsChartCode>IR</kfsChartCode> </return> <return> <kfsAcctNumber>1067497</kfsAcctNumber> <kfsChartCode>IR</kfsChartCode> </return> <return> <kfsAcctNumber>1067498</kfsAcctNumber> <kfsChartCode>IR</kfsChartCode> </return> ... ... </ns2:getAllKFSAccountsPKResponse> </soap:Body> </soap:Envelope>
Java Client Example
// get all the accounts primary key List<AccountDetails> resultList7 = ds.getAllKFSAccountsPK(); if (resultList7 != null) { StringArray sa70 = new StringArray(); // get details for each KFSAccount in a chunk of 1000 for (int i = 0; i < resultList7.size(); i++) { if (i != 0 && i % 1000 == 0) { start71 = System.currentTimeMillis(); List<AccountDetails> resultList70 = ds.getValidKFSAccounts(Arrays.asList(sa70)); // do whatever with the 1000 records in resultList70 System.out.println("1st item details, acctname: " + resultList70.get(0).getKfsAcctName() + ", addr: " + resultList70.get(0).getKfsAcctAddress()); // once hit multiple of 1000, reset argument list sa70 = new StringArray(); } else { // building arguments for getValidKFSAccounts sa70.getItem().add(resultList7.get(i).getKfsChartCode()); sa70.getItem().add(resultList7.get(i).getKfsAcctNumber()); } } } else { System.out.println("something bad happened...please check your query"); }
translateFSAccountFunds(List of (fsLocationCode, fsAccountCode, fsFundCode))
This service is used to translate legacy FS accounts to KFS account codes. Returns an XML result set with a KFS chart/account (example isValidKFSAccounts result) for each FS location/account
Input Specifications
Index | Parameter | Description | Required? | Data Type (max length) |
---|---|---|---|---|
0 | fsLocationCode | The FS location code | Yes | String (2) |
1 | fsAccountCode | The FS accounts code | Yes | String (6) |
2 | fsFundCode | The FS fund code | Yes | String (5) |
DB Query
Old: SELECT a.fin_coa_cd, a.account_nbr, FROM KFSINT.UCI_CA_ACCOUNT_XW_T a WHERE a.ACTIVE_IND <> 'N' AND a.UC_LOC_CD = 'pLocationCode' AND a.UC_ACCT_NBR = 'pAccountCode' AND a.UC_FUND_NBR = 'pFundCode' New: SELECT a.UC_LOC_CD, UC_ACCT_NBR, a.UC_FUND_NBR, a.FIN_COA_CD, a.ACCOUNT_NBR FROM UCI_CA_ACCOUNT_XW_T a WHERE a.ACTIVE_IND <> 'N'AND ( (a.UC_LOC_CD = '9' AND a.UC_ACCT_NBR = '110001' AND a.UC_FUND_NBR = '18888') OR (a.UC_LOC_CD = '9' AND a.UC_ACCT_NBR = '111200' AND a.UC_FUND_NBR = '18213') OR (a.UC_LOC_CD = '9' AND a.UC_ACCT_NBR = '111200' AND a.UC_FUND_NBR = '182') );
Result Schema: A list of following elements (FS2KFSAccountDetails.java)
Parameter | Description | Data Type | Example |
---|---|---|---|
fsLocationCode | The FS location code | String (2) | 9 |
fsAccountCode | The FS accounts code | String (6) | 110001 |
fsFundCode | The FS fund code | String (5) | 111200 |
kfsChartCode | KFS Chart Code | String (2) | 'IR' |
kfsAcctNumber | KFS Account Number | String (7) | '1234567' |
WS Example
Request
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:adc="http://www.adcom.uci.edu"> <soapenv:Header/> <soapenv:Body> <adc:translateFSAccountFunds> <fsAccountList> <item>9</item> <item>110001</item> <item>18888</item> </fsAccountList> <fsAccountList> <item>9</item> <item>111200</item> <item>18213</item> </fsAccountList> <fsAccountList> <item>9</item> <item>111200</item> <item>182</item> </fsAccountList> </adc:translateFSAccountFunds> </soapenv:Body> </soapenv:Envelope>
Response
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"> <soap:Body> <ns2:translateFSAccountFundsResponse xmlns:ns2="http://www.adcom.uci.edu"> <return> <fsAccountCode>110001</fsAccountCode> <fsFundCode>18888</fsFundCode> <fsLocationCode>9</fsLocationCode> <kfsAcctNumber>1000766</kfsAcctNumber> <kfsChartCode>IR</kfsChartCode> </return> <return> <fsAccountCode>111200</fsAccountCode> <fsFundCode>18213</fsFundCode> <fsLocationCode>9</fsLocationCode> <kfsAcctNumber>1000785</kfsAcctNumber> <kfsChartCode>IR</kfsChartCode> </return> </ns2:translateFSAccountFundsResponse> </soap:Body> </soap:Envelope>
Java Client Example
DWHServerService dss = new DWHServerService(); DWHServer ds = dss.getDWHServerPortCustom(); StringArray sa60 = new StringArray(); sa60.getItem().add("9"); sa60.getItem().add("110001"); sa60.getItem().add("18888"); StringArray sa61 = new StringArray(); sa61.getItem().add("9"); sa61.getItem().add("111200"); sa61.getItem().add("18213"); StringArray sa62 = new StringArray(); sa62.getItem().add("9"); sa62.getItem().add("111200"); sa62.getItem().add("182"); List<Fs2KFSAccountDetails> resultList6 = ds.translateFSAccountFunds(Arrays.asList(sa60,sa61,sa62)); if (resultList6 != null) { for (Iterator i = resultList6.iterator(); i.hasNext();) { Fs2KFSAccountDetails element = (Fs2KFSAccountDetails)i.next(); System.out.println("\t" + element.getFsLocationCode() + "/" + element.getFsAccountCode() + "/" + element.getFsFundCode() + " : " + element.getKfsChartCode() + "/" + element.getKfsAcctNumber()); } } else { System.out.println("something bad happened...please check your query"); }
translateFSAccountToKFSObject(List of (fsLocationCode, fsAccountCode))
This service is used to translate legacy FS accounts to KFS object codes.
Take a row in UC_ACCOUNT_T to get the corresponding row(s) from UCI_CA_OBJECT_CODE_XW_T.
- (uc_loc_cd, uc_acct_nbr, uc_sau_cd) are the composite PK for UC_ACCOUNT_T but uc_sau_cd is almost always 0. There are some rows with uc_sau_cd is NOT 0, but (uc_loc_cd, uc_acct_nbr) are not overlapped. Only uc_loc_cd and uc_acct_nbr are the input parameters.
Input Specifications
Index | Parameter | Description | Required? | Data Type (max length) |
---|---|---|---|---|
0 | fsLocationCode | The FS location code | Yes | String (2) |
1 | fsAccountCode | The FS accounts code | Yes | String (6) |
2 | fsFundCode | The FS fund code | Yes | String (5) |
DB Query
SELECT DISTINCT a.UC_LOC_CD, a.UC_ACCT_NBR, CONVERT(varchar(4),x.UNIV_FISCAL_YR) AS UNIV_FISCAL_YR, x.FIN_COA_CD, x.FIN_OBJECT_CD FROM UC_ACCOUNT_T a JOIN UCI_CA_OBJECT_CODE_XW_T x ON a.UC_LOC_CD = x.UC_LOC_CD AND a.UC_ACCT_GRP_CD = x.ACCT_GRP_CD AND a.FIN_COA_CD = x.FIN_COA_CD WHERE ( (a.UC_LOC_CD = '9' AND a.UC_ACCT_NBR = '100133') OR (a.UC_LOC_CD = '9' AND a.UC_ACCT_NBR = '101695') OR (a.UC_LOC_CD = '9' AND a.UC_ACCT_NBR = '101698') );
Result Schema: A list of following elements (FS2KFSAccountDetails.java)
Parameter | Description | Data Type | Example |
---|---|---|---|
fsLocationCode | The FS location code | String (2) | 9 |
fsAccountCode | The FS accounts code | String (6) | 100133 |
kfsFiscalYear | The KFS Fiscal Year | String (4) | 2012 |
kfsChartCode | KFS Chart Code | String (2) | IR |
kfsObjCode | KFS Object Code | String (4) | 4000 |