Oracle Trading Community Architecture Technical Implementation Guide Release 12.1 Part Number E13662-04 | ![]() Contents | ![]() Previous | ![]() Next |
This appendix provides sample code that uses the Oracle Trading Community Architecture granular APIs.
This chapter covers the following topics:
This section provides many sample codes to demonstrate how TCA API can be called to create and update entities. The sample code is provided for PL/SQL API as well as Java API. These are just sample code and do not attempt to cover any complete business case. These sample codes will help developers to quickly code required functionality using TCA API.
DECLARE
p_organization_rec HZ_PARTY_V2PUB.ORGANIZATION_REC_TYPE;
x_return_status VARCHAR2(2000);
x_msg_count NUMBER;
x_msg_data VARCHAR2(2000);
x_party_id NUMBER;
x_party_number VARCHAR2(2000);
x_profile_id NUMBER;
BEGIN
p_organization_rec.organization_name := 'ABC Corporation';
p_organization_rec.created_by_module := 'TCA_EXAMPLE';
hz_party_v2pub.create_organization (
'T',
p_organization_rec,
x_return_status,
x_msg_count,
x_msg_data,
x_party_id,
x_party_number,
x_profile_id);
dbms_output.put_line(SubStr('x_return_status = '||x_return_status,1,255));
dbms_output.put_line('x_msg_count = '||TO_CHAR(x_msg_count));
dbms_output.put_line(SubStr('x_msg_data = '||x_msg_data,1,255));
IF x_msg_count >1 THEN
FOR I IN 1..x_msg_count
LOOP
dbms_output.put_line(I||'. '||SubStr(FND_MSG_PUB.Get(p_encoded => FND_API.G_FALSE ), 1, 255));
END LOOP;
END IF;
END;
import java.math.BigDecimal;
import java.sql.Timestamp;
import java.sql.DriverManager;
import java.sql.SQLException;
import oracle.jdbc.driver.OracleConnection;
import oracle.jdbc.driver.OracleCallableStatement;
import oracle.jdbc.driver.OracleTypes;
import oracle.apps.ar.hz.v2api.HzPartyV2Pub;
class CreateOrganization {
public static void main(String[] args) throws Exception {
HzPartyV2Pub.OrganizationRec p_organization_rec = new HzPartyV2Pub.OrganizationRec();
BigDecimal[] x_party_id = new BigDecimal[1];
String[] x_party_number = new String[1];
BigDecimal[] x_profile_id = new BigDecimal[1];
String[] x_return_status = new String[1];
BigDecimal[] x_msg_count = new BigDecimal[1];
String[] x_msg_data = new String[1];
try {
Class.forName ("oracle.jdbc.driver.OracleDriver");
OracleConnection conn = (OracleConnection)
DriverManager.getConnection (
"jdbc:oracle:thin:@ap103fam:1521:findv115",
"apps", "apps");
HzPartyV2Pub partyV2Pub = new HzPartyV2Pub();
p_organization_rec.organization_name = "ABC Corporation";
p_organization_rec.created_by_module = "TCA_EXAMPLE";
partyV2Pub.createOrganization(
conn
, "T"
, p_organization_rec
, x_return_status
, x_msg_count
, x_msg_data
, x_party_id
, x_party_number
, x_profile_id
);
System.out.println( "x_return_status = " + x_return_status[0] );
System.out.println( "x_msg_count = " + x_msg_count[0] );
System.out.println( "x_msg_data = " + x_msg_data[0] );
if (x_msg_count[0].intValue() > 1) {
OracleCallableStatement ocs = null;
for (int i=0; i<x_msg_count[0].intValue(); i++) {
ocs = (OracleCallableStatement)conn.prepareCall(
"begin ? := fnd_msg_pub.get( p_encoded => 'F' ); end;");
ocs.registerOutParameter(1, OracleTypes.VARCHAR);
ocs.execute();
System.out.println((i + 1) + ". " + ocs.getString(1));
}
}
conn.close();
} catch (ClassNotFoundException e) {
System.out.println("Driver Not Found: " + e);
} catch (SQLException e) {
System.out.println("SQL Error." + e);
}
}
}
x_return_status = S
x_msg_count = 0
x_msg_data =
x_party_id = 1272023
x_party_number = 1268621
x_profile_id = 99782
select party_id, party_number, party_name, object_version_number, created_by_module
from hz_parties
where party_id = 1272023;
The following table provides information about this select statement.
PARTY_ID | PARTY_NUMBER | PARTY_NAME | OBJ_VER | CREATED_BY_MOD |
---|---|---|---|---|
1272023 | 1268621 | ABC Corporation | 1 | TCA_EXAMPLE |
select organization_profile_id, party_id, organization_name, object_version_number, created_by_module
from hz_organization_profiles
where party_id = 1272023;
The following table provides information about this select statement.
ORG_PROFILE_ID | PARTY_ID | ORGANIZATION_NAME | OBJ_VER_NUM | CREATED_BY_M |
---|---|---|---|---|
99782 | 1272023 | ABC Corporation | 1 | TCA_EXAMPLE |
Similarly you can call hz_party_v2pub.create_person to create record in the HZ_PARTIES and HZ_PERSON_PROFILES tables and hz_party_v2pub.create_group to create record in the HZ_PARTIES table.
DECLARE
p_location_rec HZ_LOCATION_V2PUB.LOCATION_REC_TYPE;
x_location_id NUMBER;
x_return_status VARCHAR2(2000);
x_msg_count NUMBER;
x_msg_data VARCHAR2(2000);
BEGIN
p_location_rec.country := 'US';
p_location_rec.address1 := '300 Oracle Parkway';
p_location_rec.address2 := '13th Floor';
p_location_rec.city := 'Redwood Shores';
p_location_rec.postal_code := '94065';
p_location_rec.state := 'CA';
p_location_rec.created_by_module := 'TCA_EXAMPLE';
hz_location_v2pub.create_location(
'T',
p_location_rec,
x_location_id,
x_return_status,
x_msg_count,
x_msg_data);
dbms_output.put_line(SubStr('x_return_status = '||x_return_status,1,255));
dbms_output.put_line('x_msg_count = '||TO_CHAR(x_msg_count));
dbms_output.put_line(SubStr('x_msg_data = '||x_msg_data,1,255));
IF x_msg_count >1 THEN
FOR I IN 1..x_msg_count
LOOP
dbms_output.put_line(I||'. '||SubStr(FND_MSG_PUB.Get(p_encoded => FND_API.G_FALSE ), 1, 255));
END LOOP;
END IF;
END;
import java.math.BigDecimal;
import java.sql.Timestamp;
import java.sql.DriverManager;
import java.sql.SQLException;
import oracle.jdbc.driver.OracleConnection;
import oracle.jdbc.driver.OracleCallableStatement;
import oracle.jdbc.driver.OracleTypes;
import oracle.apps.ar.hz.v2api.HzLocationV2Pub;
class CreateLocation {
public static void main(String[] args) throws Exception {
HzLocationV2Pub.LocationRec p_location_rec = new HzLocationV2Pub.LocationRec();
BigDecimal[] x_location_id = new BigDecimal[1];
String[] x_return_status = new String[1];
BigDecimal[] x_msg_count = new BigDecimal[1];
String[] x_msg_data = new String[1];
try {
Class.forName ("oracle.jdbc.driver.OracleDriver");
OracleConnection conn = (OracleConnection)
DriverManager.getConnection (
"jdbc:oracle:thin:@ap103fam:1521:findv115",
"apps", "apps");
HzLocationV2Pub locationV2Pub = new HzLocationV2Pub();
p_location_rec.country = "US";
p_location_rec.address1 = "300 Oracle Parkway";
p_location_rec.address2 = "13th Floor";
p_location_rec.city = "Redwood Shores";
p_location_rec.postal_code = "94065";
p_location_rec.state = "CA";
p_location_rec.created_by_module = "TCA_EXAMPLE";
locationV2Pub.createLocation(
conn
, "T"
, p_location_rec
, x_location_id
, x_return_status
, x_msg_count
, x_msg_data
);
System.out.println( "x_return_status = " + x_return_status[0] );
System.out.println( "x_msg_count = " + x_msg_count[0] );
System.out.println( "x_msg_data = " + x_msg_data[0] );
if (x_msg_count[0].intValue() > 1) {
OracleCallableStatement ocs = null;
for (int i=0; i<x_msg_count[0].intValue(); i++) {
ocs = (OracleCallableStatement)conn.prepareCall(
"begin ? := fnd_msg_pub.get( p_encoded => 'F' ); end;");
ocs.registerOutParameter(1, OracleTypes.VARCHAR);
ocs.execute()
System.out.println((i + 1) + ". " + ocs.getString(1));
}
}
conn.close();
} catch (ClassNotFoundException e) {
System.out.println("Driver Not Found: " + e);
} catch (SQLException e) {
System.out.println("SQL Error." + e);
}
}
}
x_location_id = 359086
x_return_status = S
x_msg_count = 0
x_msg_data =
select location_id, address1, address2, city, state, postal_code, country,
object_version_number, created_by_module
from hz_locations
where location_id = 359086;
The following tables provide information about this select statement.
LOCATION_ID | ADDRESS1 | ADDRESS2 | CITY | STATE | POSTAL_CODE |
---|---|---|---|---|---|
359086 | 300 Oracle Parkway | 13th Floor | Redwood Shores | CA | 94065 |
COUNTRY | OBJECT_VERSION_NUMBER | CREATED_BY_MODULE |
---|---|---|
US | 1 | TCA_EXAMPLE |
The following examples use the organizations and locations created in the previous examples.
DECLARE
p_party_site_rec HZ_PARTY_SITE_V2PUB.PARTY_SITE_REC_TYPE;
x_party_site_id NUMBER;
x_party_site_number VARCHAR2(2000);
x_return_status VARCHAR2(2000);
x_msg_count NUMBER;
x_msg_data VARCHAR2(2000);
BEGIN
p_party_site_rec.party_id := 1272023;
p_party_site_rec.location_id := 359086;
p_party_site_rec.identifying_address_flag := 'Y';
p_party_site_rec.created_by_module := 'TCA_EXAMPLE';
hz_party_site_v2pub.create_party_site(
'T',
p_party_site_rec,
x_party_site_id,
x_party_site_number,
x_return_status,
x_msg_count,
x_msg_data);
dbms_output.put_line(SubStr('x_return_status = '||x_return_status,1,255));
dbms_output.put_line('x_msg_count = '||TO_CHAR(x_msg_count));
dbms_output.put_line(SubStr('x_msg_data = '||x_msg_data,1,255));
IF x_msg_count >1 THEN
FOR I IN 1..x_msg_count
LOOP
dbms_output.put_line(I||'. '||SubStr(FND_MSG_PUB.Get(p_encoded => FND_API.G_FALSE ), 1, 255));
END LOOP;
END IF;
END;
import java.math.BigDecimal;
import java.sql.Timestamp;
import java.sql.DriverManager;
import java.sql.SQLException;
import oracle.jdbc.driver.OracleConnection;
import oracle.jdbc.driver.OracleCallableStatement;
import oracle.jdbc.driver.OracleTypes;
import oracle.apps.ar.hz.v2api.HzPartySiteV2Pub;
class CreatePartySite {
public static void main(String[] args) throws Exception {
HzPartySiteV2Pub.PartySiteRec p_party_site_rec = new HzPartySiteV2Pub.PartySiteRec();
BigDecimal[] x_party_site_id = new BigDecimal[1];
String[] x_party_site_number = new String[1];
String[] x_return_status = new String[1];
BigDecimal[] x_msg_count = new BigDecimal[1];
String[] x_msg_data = new String[1];
try {
Class.forName ("oracle.jdbc.driver.OracleDriver");
OracleConnection conn = (OracleConnection)
DriverManager.getConnection (
"jdbc:oracle:thin:@ap103fam:1521:findv115",
"apps", "apps");
HzPartySiteV2Pub partysiteV2Pub = new HzPartySiteV2Pub();
p_party_site_rec.party_id = new BigDecimal("1272023");
p_party_site_rec.location_id = new BigDecimal ("359086");
p_party_site_rec.identifying_address_flag = "Y";
p_party_site_rec.created_by_module = "TCA_EXAMPLE";
partysiteV2Pub.createPartySite(
conn
, "T"
, p_party_site_rec
, x_party_site_id
, x_party_site_number
, x_return_status
, x_msg_count
, x_msg_data
);
System.out.println( "x_return_status = " + x_return_status[0] );
System.out.println( "x_msg_count = " + x_msg_count[0] );
System.out.println( "x_msg_data = " + x_msg_data[0] );
if (x_msg_count[0].intValue() > 1) {
OracleCallableStatement ocs = null;
for (int i=0; i<x_msg_count[0].intValue(); i++) {
ocs = (OracleCallableStatement)conn.prepareCall(
"begin ? := fnd_msg_pub.get( p_encoded => 'F' ); end;");
ocs.registerOutParameter(1, OracleTypes.VARCHAR);
ocs.execute();
System.out.println((i + 1) + ". " + ocs.getString(1));
}
}
conn.close();
} catch (ClassNotFoundException e) {
System.out.println("Driver Not Found: " + e);
} catch (SQLException e) {
System.out.println("SQL Error." + e);
}
}
}
x_party_site_id = 349327
x_party_site_number = 347092
x_return_status = S
x_msg_count = 0
x_msg_data =
select party_site_id, party_id, location_id, party_site_number
from hz_party_sites
where party_site_id = 349327;
The following table provides information about this select statement.
PARTY_SITE_ID | PARTY_ID | LOCATION_ID | PARTY_SITE_NUMBER |
---|---|---|---|
349327 | 1272023 | 359086 | 347092 |
Because the party site is created with the identifying_address_flag column set to Y, location information is denormalized in the HZ_PARTIES table.
The following table provides information about this select statement.
ADDRESS1 | ADDRESS2 | CITY | STATE | POSTAL_CODE | COUNTRY |
---|---|---|---|---|---|
300 Oracle Parkway | 13th Floor | Redwood Shores | CA | 940655 | US |
select address1, address2, city, state, postal_code, country
from hz_parties
where party_id = 1272023;
Using the same party site created in the previous example.
The following example uses the party site created in the previous example.
DECLARE
p_party_site_use_rec HZ_PARTY_SITE_V2PUB.PARTY_SITE_USE_REC_TYPE;
x_party_site_use_id NUMBER;
x_return_status VARCHAR2(2000);
x_msg_count NUMBER;
x_msg_data VARCHAR2(2000);
BEGIN
p_party_site_use_rec.site_use_type := 'SHIP_TO';
p_party_site_use_rec.party_site_id := 349327;
p_party_site_use_rec.created_by_module := 'TCA_EXAMPLE';
hz_party_site_v2pub.create_party_site_use(
'T',
p_party_site_use_rec,
x_party_site_use_id,
x_return_status,
x_msg_count,
x_msg_data);
dbms_output.put_line(SubStr('x_return_status = '||x_return_status,1,255));
dbms_output.put_line('x_msg_count = '||TO_CHAR(x_msg_count));
dbms_output.put_line(SubStr('x_msg_data = '||x_msg_data,1,255));
IF x_msg_count >1 THEN
FOR I IN 1..x_msg_count
LOOP
dbms_output.put_line(I||'. '||SubStr(FND_MSG_PUB.Get(p_encoded => FND_API.G_FALSE ), 1, 255));
END LOOP;
END IF;
END;
import java.math.BigDecimal;
import java.sql.Timestamp;
import java.sql.DriverManager;
import java.sql.SQLException;
import oracle.jdbc.driver.OracleConnection;
import oracle.jdbc.driver.OracleCallableStatement;
import oracle.jdbc.driver.OracleTypes;
import oracle.apps.ar.hz.v2api.HzPartySiteV2Pub;
class CreatePartySiteUse {
public static void main(String[] args) throws Exception {
HzPartySiteV2Pub.PartySiteUseRec p_party_site_use_rec = new HzPartySiteV2Pub.PartySiteUseRec();
BigDecimal[] x_party_site_use_id = new BigDecimal[1];
String[] x_return_status = new String[1];
BigDecimal[] x_msg_count = new BigDecimal[1];
String[] x_msg_data = new String[1];
try {
Class.forName ("oracle.jdbc.driver.OracleDriver");
OracleConnection conn = (OracleConnection)
DriverManager.getConnection (
"jdbc:oracle:thin:@ap103fam:1521:findv115",
"apps", "apps");
HzPartySiteV2Pub partysiteV2Pub = new HzPartySiteV2Pub();
p_party_site_use_rec.site_use_type = "SHIP_TO";
p_party_site_use_rec.party_site_id = new BigDecimal("349327");
p_party_site_use_rec.created_by_module = "TCA_EXAMPLE";
partysiteV2Pub.createPartySiteUse(
conn
, "T"
, p_party_site_use_rec
, x_party_site_use_id
, x_return_status
, x_msg_count
, x_msg_data
);
System.out.println( "x_return_status = " + x_return_status[0] );
System.out.println( "x_msg_count = " + x_msg_count[0] );
System.out.println( "x_msg_data = " + x_msg_data[0] );
if (x_msg_count[0].intValue() > 1) {
OracleCallableStatement ocs = null;
for (int i=0; i<x_msg_count[0].intValue(); i++) {
ocs = (OracleCallableStatement)conn.prepareCall(
"begin ? := fnd_msg_pub.get( p_encoded => 'F' ); end;");
ocs.registerOutParameter(1, OracleTypes.VARCHAR);
ocs.execute();
System.out.println((i + 1) + ". " + ocs.getString(1));
}
}
conn.close();
} catch (ClassNotFoundException e) {
System.out.println("Driver Not Found: " + e);
} catch (SQLException e) {
System.out.println("SQL Error." + e);
}
}
}
x_party_site_use_id = 13523754
x_return_status = S
x_msg_count = 0
x_msg_data =
select party_site_use_id, party_site_id, site_use_type, primary_per_type
from hz_party_site_uses
where party_site_use_id = 13523754;
The following table provides information about this select statement.
PARTY_SITE_USE_ID | PARTY_SITE_ID | USE_TYPE | PRIMARY_PER_TYPE |
---|---|---|---|
13523754 | 349327 | SHIP_TO | Y |
Because the example above is the first SHIP_TO site use created for party ID 1272023, the primary_per_type attribute is set to Y.
This procedure creates a phone number for the same organization created in the first example.
DECLARE
p_contact_point_rec HZ_CONTACT_POINT_V2PUB.CONTACT_POINT_REC_TYPE;
p_edi_rec HZ_CONTACT_POINT_V2PUB.EDI_REC_TYPE;
p_email_rec HZ_CONTACT_POINT_V2PUB.EMAIL_REC_TYPE;
p_phone_rec HZ_CONTACT_POINT_V2PUB.PHONE_REC_TYPE;
p_telex_rec HZ_CONTACT_POINT_V2PUB.TELEX_REC_TYPE;
p_web_rec HZ_CONTACT_POINT_V2PUB.WEB_REC_TYPE;
x_return_status VARCHAR2(2000);
x_msg_coun t NUMBER;
x_msg_data VARCHAR2(2000);
x_contact_point_id NUMBER;
BEGIN
p_contact_point_rec.contact_point_type := 'PHONE';
p_contact_point_rec.owner_table_name := 'HZ_PARTIES';
p_contact_point_rec.owner_table_id := '1272023';
p_contact_point_rec.primary_flag := 'Y';
p_contact_point_rec.contact_point_purpose := 'BUSINESS';
p_phone_rec.phone_area_code := '650';
p_phone_rec.phone_country_code := '1';
p_phone_rec.phone_number := '506-7000';
p_phone_rec.phone_line_type := 'GEN';
p_contact_point_rec.created_by_module := 'TCA_EXAMPLE';
hz_contact_point_v2pub.create_contact_point(
'T',
p_contact_point_rec,
p_edi_rec,
p_email_rec,
p_phone_rec,
p_telex_rec,
p_web_rec,
x_contact_point_id,
x_return_status,
x_msg_count,
x_msg_data);
dbms_output.put_line(SubStr('x_return_status = '||x_return_status,1,255));
dbms_output.put_line('x_msg_count = '||TO_CHAR(x_msg_count));
dbms_output.put_line(SubStr('x_msg_data = '||x_msg_data,1,255));
IF x_msg_count >1 THEN
FOR I IN 1..x_msg_count
LOOP
dbms_output.put_line(I||'. '||SubStr(FND_MSG_PUB.Get(p_encoded => FND_API.G_FALSE ), 1, 255));
END LOOP;
END IF;
END;
import java.math.BigDecimal;
import java.sql.Timestamp;
import java.sql.DriverManager;
import java.sql.SQLException;
import oracle.jdbc.driver.OracleConnection;'
import oracle.jdbc.driver.OracleCallableStatement;
import oracle.jdbc.driver.OracleTypes;
import oracle.apps.ar.hz.v2api.HzContactPointV2Pub;
class CreateContactPoint {
public static void main(String[] args) throws Exception {
HzContactPointV2Pub.ContactPointRec p_contact_point_rec = new HzContactPointV2Pub.ContactPointRec();
HzContactPointV2Pub.EdiRec p_edi_rec = new HzContactPointV2Pub.EdiRec();
HzContactPointV2Pub.EmailRec p_email_rec = new HzContactPointV2Pub.EmailRec();
HzContactPointV2Pub.PhoneRec p_phone_rec = new HzContactPointV2Pub.PhoneRec();
HzContactPointV2Pub.TelexRec p_telex_rec = new HzContactPointV2Pub.TelexRec();
HzContactPointV2Pub.WebRec p_web_rec = new HzContactPointV2Pub.WebRec();
BigDecimal[] x_contact_point_id = new BigDecimal[1];
String[] x_return_status = new String[1];
BigDecimal[] x_msg_count = new BigDecimal[1];
String[] x_msg_data = new String[1];
try {
Class.forName ("oracle.jdbc.driver.OracleDriver");
OracleConnection conn = (OracleConnection)
DriverManager.getConnection (
"jdbc:oracle:thin:@ap103fam:1521:findv115",
"apps", "apps");
HzContactPointV2Pub contactpointV2Pub = new HzContactPointV2Pub();
p_contact_point_rec.contact_point_type = "PHONE";
p_contact_point_rec.owner_table_name = "HZ_PARTIES";
p_contact_point_rec.owner_table_id = new BigDecimal("1272023");
p_contact_point_rec.primary_flag = "Y";
p_contact_point_rec.contact_point_purpose = "BUSINESS";
p_phone_rec.phone_area_code = "650";
p_phone_rec.phone_country_code = "1";
p_phone_rec.phone_number = "506-7000";
p_phone_rec.phone_line_type = "GEN";
p_contact_point_rec.created_by_module = "TCA_EXAMPLE";
contactpointV2Pub.createContactPoint(
conn
, "T"
, p_contact_point_rec
, p_edi_rec
, p_email_rec
, p_phone_rec
, p_telex_rec
, p_web_rec
, x_contact_point_id
, x_return_status
, x_msg_count
, x_msg_data
);
System.out.println( "x_return_status = " + x_return_status[0] );
System.out.println( "x_msg_count = " + x_msg_count[0] );
System.out.println( "x_msg_data = " + x_msg_data[0] );
if (x_msg_count[0].intValue() > 1) {
OracleCallableStatement ocs = null;
for (int i=0; i<x_msg_count[0].intValue(); i++) {
ocs = (OracleCallableStatement)conn.prepareCall(
"begin ? := fnd_msg_pub.get( p_encoded => 'F' ); end;");
ocs.registerOutParameter(1, OracleTypes.VARCHAR);
ocs.execute();
System.out.println((i + 1) + ". " + ocs.getString(1));
}
}
conn.close();
} catch (ClassNotFoundException e) {
System.out.println("Driver Not Found: " + e);
} catch (SQLException e) {
System.out.println("SQL Error." + e);
}
}
}
x_contact_point_id = 429523
x_return_status = S
x_msg_count = 0
x_msg_data =
select contact_point_id, contact_point_type, owner_table_name, owner_table_id, primary_flag,
phone_area_code, phone_country_code, phone_number, phone_line_type, raw_phone_number
from hz_contact_points
where contact_point_id = 429523;
The following tables provide information about this select statement.
CONTACT_POINT_ID | CONTACT_POINT_TYPE | OWNER_TABLE_NAME |
---|---|---|
429523 | PHONE | HZ_PARTIES |
OWNER_TABLE_ID | PRIMARY_FLAG | PHONE_AREA_CODE |
---|---|---|
1272023 | Y | 650 |
PHONE_COUNTRY_CODE | PHONE_NUMBER | PHONE_LINE_TYPE |
---|---|---|
1 | 506-7000 | GEN |
RAW_PHONE_NUMBER |
---|
650-506-7000 |
This procedure assumes that a person with party ID 16077 exists in the database.
DECLARE
p_org_contact_rec HZ_PARTY_CONTACT_V2PUB.ORG_CONTACT_ REC_TYPE;
x_org_contact_id NUMBER;
x_party_rel_id NUMBER;
x_party_id NUMBER;
x_party_number VARCHAR2(2000);
x_return_status VARCHAR2(2000);
x_msg_count NUMBER;
x_msg_data VARCHAR2(2000);
BEGIN
p_org_contact_rec.department_code := 'ACCOUNTING';
p_org_contact_rec.job_title := 'ACCOUNTS OFFICER';
p_org_contact_rec.decision_maker_flag := 'Y';
p_org_contact_rec.job_title_code := 'APC';
p_org_contact_rec.created_by_module := 'TCA_EXAMPLE';
p_org_contact_rec.party_rel_rec.subject_id := 16077;
p_org_contact_rec.party_rel_rec.subject_type := 'PERSON';
p_org_contact_rec.party_rel_rec.subject_table_name := 'HZ_PARTIES';
p_org_contact_rec.party_rel_rec.object_id := 1272023;
p_org_contact_rec.party_rel_rec.object_type := 'ORGANIZATION';
p_org_contact_rec.party_rel_rec.object_table_name := 'HZ_PARTIES';
p_org_contact_rec.party_rel_rec.relationship_code := 'CONTACT_OF';
p_org_contact_rec.party_rel_rec.relationship_type := 'CONTACT';
p_org_contact_rec.party_rel_rec.start_date := SYSDATE;
hz_party_contact_v2pub.create_org_contact(
'T',
p_org_contact_rec,
x_org_contact_id,
x_party_rel_id,
x_party_id,
x_party_number,
x_return_status,
x_msg_count,
x_msg_data);
dbms_output.put_line(SubStr('x_return_status = '||x_return_status,1,255));
dbms_output.put_line('x_msg_count = '||TO_CHAR(x_msg_count));
dbms_output.put_line(SubStr('x_msg_data = '||x_msg_data,1,255));
IF x_msg_count >1 THEN
FOR I IN 1..x_msg_count
LOOP
dbms_output.put_line(I||'. '||SubStr(FND_MSG_PUB.Get(p_encoded => FND_API.G_FALSE ), 1, 255));
END LOOP;
END IF;
END;
import java.math.BigDecimal;
import java.sql.Timestamp;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.Timestamp;
import oracle.jdbc.driver.OracleConnection;
import oracle.jdbc.driver.OracleCallableStatement;
import oracle.jdbc.driver.OracleTypes;
import oracle.apps.ar.hz.v2api.HzPartyContactV2Pub;
class CreateOrgContact {
public static void main(String[] args) throws Exception {
HzPartyContactV2Pub.OrgContactRec p_org_contact_rec = new HzPartyContactV2Pub.OrgContactRec();
BigDecimal[] x_org_contact_id = new BigDecimal[1];
BigDecimal[] x_party_rel_id = new BigDecimal[1];
BigDecimal[] x_party_id = new BigDecimal[1];
String[] x_party_number = new String[1];
String[] x_return_status = new String[1];
BigDecimal[] x_msg_count = new BigDecimal[1];
String[] x_msg_data = new String[1];
try {
Class.forName ("oracle.jdbc.driver.OracleDriver");
OracleConnection conn = (OracleConnection)
DriverManager.getConnection (
"jdbc:oracle:thin:@ap103fam:1521:findv115",
"apps", "apps");
HzPartyContactV2Pub partycontactV2Pub = new HzPartyContactV2Pub();
p_org_contact_rec.department_code = "ACCOUNTING";
p_org_contact_rec.job_title = "ACCOUNTS OFFICER";
p_org_contact_rec.decision_maker_flag = "Y";
p_org_contact_rec.job_title_code = "APC";
p_org_contact_rec.created_by_module = "TCA_EXAMPLE";
p_org_contact_rec.party_rel_rec.subject_id = new BigDecimal("16077");
p_org_contact_rec.party_rel_rec.subject_type = "PERSON";
p_org_contact_rec.party_rel_rec.subject_table_name = "HZ_PARTIES";
p_org_contact_rec.party_rel_rec.object_id = new BigDecimal("1272023");
p_org_contact_rec.party_rel_rec.object_type = "ORGANIZATION";
p_org_contact_rec.party_rel_rec.object_table_name = "HZ_PARTIES";
p_org_contact_rec.party_rel_rec.relationship_code = "CONTACT_OF";
p_org_contact_rec.party_rel_rec.relationship_type = "CONTACT";
p_org_contact_rec.party_rel_rec.start_date = Timestamp.valueOf("2001-09-26 00:00:00.0") ;
partycontactV2Pub.createOrgContact(
conn
, "T"
, p_org_contact_rec
, x_org_contact_id
, x_party_rel_id
, x_party_id
, x_party_number
, x_return_status
, x_msg_count
, x_msg_data
);
System.out.println( "x_return_status = " + x_return_status[0] );
System.out.println( "x_msg_count = " + x_msg_count[0] );
System.out.println( "x_msg_data = " + x_msg_data[0] );
if (x_msg_count[0].intValue() > 1) {
OracleCallableStatement ocs = null;
for (int i=0; i<x_msg_count[0].intValue(); i++) {
ocs = (OracleCallableStatement)conn.prepareCall(
"begin ? = fnd_msg_pub.get( p_encoded => 'F' ); end;");
ocs.registerOutParameter(1, OracleTypes.VARCHAR);
ocs.execute();
System.out.println((i + 1) + ". " + ocs.getString(1));
}
}
conn.close();
} catch (ClassNotFoundException e) {
System.out.println("Driver Not Found: " + e);
} catch (SQLException e) {
System.out.println("SQL Error." + e);
}
}
}
x_org_contact_id = 411650
x_party_rel_id = 10091074
x_party_id = 1272029
x_party_number = 1268627
x_return_status = S
x_msg_count = 0
x_msg_data =
Organization contact record is created.
select org_contact_id, party_relationship_id, department_code, title, job_title, job_title_code
from hz_org_contacts
where org_contact_id = 411650;
The following tables provide information about this select statement.
ORG_CONTACT_ID | PARTY_RELATIONSHIP_ID | DEPARTMENT_CODE | TITLE |
---|---|---|---|
411650 | 10091074 | ACCOUNTING | DR. |
JOB_TITLE | JOB_TITLE_CODE |
---|---|
ACCOUNTS OFFICER | APC |
Two relationship records are created.
select relationship_id, subject_id, subject_type, subject_table_name,
object_id, object_type, object_table_name, directional_flag
relationship_type, relationship_code, party_id
from hz_relationships
where relationship_id = 10091074;
The following tables provide information about this select statement.
RELATIONSHIP_ID | SUBJECT_ID | SUBJECT_TYPE | SUBJECT_TABLE_NAME |
---|---|---|---|
10091074 | 16077 | PERSON | HZ_PARTIES |
10091074 | 1272023 | ORGANIZATION | HZ_PARTIES |
OBJECT_ID | OBJECT_TYPE | OBJECT_TABLE_NAME | DIRECTIONAL_FLAG |
---|---|---|---|
1272023 | ORGANIZATION | HZ_PARTIES | F |
16077 | PERSON | HZ_PARTIES | B |
RELATIONSHIP_TYPE | RELATIONSHIP_CODE | PARTY_ID |
---|---|---|
CONTACT | CONTACT_OF | 1272029 |
CONTACT | CONTACT | 1272029 |
A party record is created.
select party_id, party_number, party_name, party_type
from hz_parties
where party_id = 1272029;
The following table provides information about this select statement.
PARTY_ID | PARTY_NUMBER | PARTY_NAME | PARTY_TYPE |
---|---|---|---|
1272029 | 1268627 | John Doe -ABC Corporation-1268627 | PARTY_RELATIONSHIP |
This procedure updates the new location and sets address2 to null and county to 'San Mateo'.
To update an attribute to null in the PL/SQL API, you must set the attribute's value to FND_API.G_MISS_XXX.
DECLARE
p_location_rec HZ_LOCATION_V2PUB.LOCATION_REC_TYPE;
p_object_version_number NUMBER;
x_return_status VARCHAR2(2000);
x_msg_count NUMBER;
x_msg_data VARCHAR2(2000);
BEGIN
p_location_rec.location_id := 359086;
p_location_rec.address2 := FND_API.G_MISS_CHAR;
p_location_rec.county := 'San Mateo';
- - get the object version number of the current record
select object_version_number
into p_object_version_number
from hz_locations
where location_id = 359086;
hz_location_v2pub.update_location(
'T',
p_location_rec,
p_object_version_number,
x_return_status,
x_msg_count,
x_msg_data);
dbms_output.put_line(SubStr('x_return_status = '||x_return_status,1,255));
dbms_output.put_line('x_msg_count = '||TO_CHAR(x_msg_count));
dbms_output.put_line(SubStr('x_msg_data = '||x_msg_data,1,255));
IF x_msg_count >1 THEN
FOR I IN 1..x_msg_count
LOOP
dbms_output.put_line(I||'. '||SubStr(FND_MSG_PUB.Get(p_encoded => FND_API.G_FALSE ), 1, 255));
END LOOP;
END IF;
END;
To update an attribute to null, you must set the attribute's value to null. This procedure is different from that of the PL/SQL API.
import java.math.BigDecimal;
import java.sql.Timestamp;
import java.sql.DriverManager;
import java.sql.SQLException;
import oracle.jdbc.driver.OracleConnection;
import oracle.jdbc.driver.OracleCallableStatement;
import oracle.jdbc.driver.OracleTypes;
import oracle.apps.ar.hz.v2api.HzLocationV2Pub;
import oracle.apps.ar.hz.v2api.HzConstant;
class UpdateLocation {
public static void main(String[] args) throws Exception {
HzLocationV2Pub.LocationRec p_location_rec = new HzLocationV2Pub.LocationRec();
String[] x_return_status = new String[1];
BigDecimal[] x_msg_count = new BigDecimal[1];
String[] x_msg_data = new String[1];
BigDecimal[] p_object_version_number = new BigDecimal[1];
try {
Class.forName ("oracle.jdbc.driver.OracleDriver");
OracleConnection conn = (OracleConnection)
DriverManager.getConnection (
"jdbc:oracle:thin:@ap103fam:1521:findv115",
"apps", "apps");
HzLocationV2Pub locationV2Pub = new HzLocationV2Pub();
p_location_rec.location_id = new BigDecimal("359086");
p_location_rec.address2 = null;
p_location_rec.county = "San Mateo";
-- please note, you should pass the current value of object
-- version number column for this record
p_object_version_number[0] = new BigDecimal("1");
locationV2Pub.updateLocation(
conn
, "T"
, p_location_rec
, p_object_version_number
, x_return_status
, x_msg_count
, x_msg_data
);
System.out.println( "x_return_status = " + x_return_status[0] );
System.out.println( "x_msg_count = " + x_msg_count[0] );
System.out.println( "x_msg_data = " + x_msg_data[0] );
if (x_msg_count[0].intValue() > 1) {
OracleCallableStatement ocs = null;
for (int i=0; i<x_msg_count[0].intValue(); i++) {
ocs = (OracleCallableStatement)conn.prepareCall(
"begin ? := fnd_msg_pub.get( p_encoded => 'F' ); end;");
ocs.registerOutParameter(1, OracleTypes.VARCHAR);
ocs.execute();
System.out.println((i + 1) + ". " + ocs.getString(1));
}
}
conn.close();
} catch (ClassNotFoundException e) {
System.out.println("Driver Not Found: " + e);
} catch (SQLException e) {
System.out.println("SQL Error." + e);
}
}
}
select address1, address2, county, object_version_number
from hz_locations
where location_id = 359086;
The following table provides information about this select statement.
ADDRESS1 | ADDRESS2 | COUNTY | OBJECT_VERSION_NUMBER |
---|---|---|---|
300 Oracle Parkway | San Mateo | 2 |
DECLARE
p_cust_account_rec HZ_CUST_ACCOUNT_V2PUB.CUST_ACCOUNT_REC_TYPE;
p_person_rec HZ_PARTY_V2PUB.PERSON_REC_TYPE;
p_customer_profile_rec HZ_CUSTOMER_PROFILE_V2PUB.CUSTOMER_PROFILE REC_TYPE;
x_cust_account_id NUMBER;
x_account_number VARCHAR2(2000);
x_party_id NUMBER;
x_party_number VARCHAR2(2000);
x_profile_id NUMBER;
x_return_status VARCHAR2(2000);
x_msg_count NUMBER;
x_msg_data VARCHAR2(2000);
BEGIN
p_cust_account_rec.account_name := 'John''s A/c';
p_cust_account_rec.created_by_module := 'TCA_EXAMPLE';
p_person_rec.person_first_name := 'John';
p_person_rec.person_last_name := 'Smith';
hz_cust_account_v2pub.create_cust_account(
'T',
p_cust_account_rec,
p_person_rec,
p_customer_profile_rec,
'F',
x_cust_account_id,
x_account_number,
x_party_id,
x_party_number,
x_profile_id,
x_return_status,
x_msg_count,
x_msg_data);
dbms_output.put_line(SubStr('x_return_status = '||x_return_status,1,255));
dbms_output.put_line('x_msg_count = '||TO_CHAR(x_msg_count));
dbms_output.put_line(SubStr('x_msg_data = '||x_msg_data,1,255));
IF x_msg_count >1 THEN
FOR I IN 1..x_msg_count
LOOP
dbms_output.put_line(I||'. '||SubStr(FND_MSG_PUB.Get(p_encoded => FND_API.G_FALSE ), 1, 255));
END LOOP;
END IF;
END;
import java.math.BigDecimal;
import java.sql.Timestamp;
import java.sql.DriverManager;
import java.sql.SQLException;
import oracle.jdbc.driver.OracleConnection;
import oracle.jdbc.driver.OracleCallableStatement;
import oracle.jdbc.driver.OracleTypes;
import oracle.apps.ar.hz.v2api.HzCustAccountV2Pub;
import oracle.apps.ar.hz.v2api.HzPartyV2Pub;
import oracle.apps.ar.hz.v2api.HzCustomerProfileV2Pub;
class CreateCustAccount {
public static void main(String[] args) throws Exception {
HzCustAccountV2Pub.CustAccountRec p_cust_account_rec = new HzCustAccountV2Pub.CustAccountRec();
HzPartyV2Pub.PersonRec p_person_rec = new HzPartyV2Pub.PersonRec();
HzCustomerProfileV2Pub.CustomerProfileRec p_customer_profile_rec = new HzCustomerProfileV2Pub.CustomerProfileRec();
BigDecimal[] x_cust_account_id = new BigDecimal[1];
String[] x_account_number = new String[1];
BigDecimal[] x_party_id = new BigDecimal[1];
String[] x_party_number = new String[1];
BigDecimal[] x_profile_id = new BigDecimal[1];
String[] x_return_status = new String[1];
BigDecimal[] x_msg_count = new BigDecimal[1];
String[] x_msg_data = new String[1];
try {
Class.forName ("oracle.jdbc.driver.OracleDriver");
OracleConnection conn = (OracleConnection)
DriverManager.getConnection (
"jdbc:oracle:thin:@ap103fam:1521:findv115",
"apps", "apps");
HzCustAccountV2Pub custaccountV2Pub = new HzCustAccountV2Pub();
p_cust_account_rec.account_name = "John A/c";
p_person_rec.person_first_name = "John";
p_person_rec.person_last_name = "Smith";
p_cust_account_rec.created_by_module = "TCA_EXAMPLE";
custaccountV2Pub.createCustAccount(
conn
, "T"
, p_cust_account_rec
, p_person_rec
, p_customer_profile_rec
, "F"
, x_cust_account_id
, x_account_number
, x_party_id
, x_party_number
, x_profile_id
, x_return_status
, x_msg_count
, x_msg_data
);
System.out.println( "x_return_status = " + x_return_status[0] );
System.out.println( "x_msg_count = " + x_msg_count[0] );
System.out.println( "x_msg_data = " + x_msg_data[0] );
if (x_msg_count[0].intValue() > 1) {
OracleCallableStatement ocs = null;
for (int i=0; i<x_msg_count[0].intValue(); i++) {
ocs = (OracleCallableStatement)conn.prepareCall(
"begin ? := fnd_msg_pub.get( p_encoded => 'F' ); end;");
ocs.registerOutParameter(1, OracleTypes.VARCHAR);
ocs.execute();
System.out.println((i + 1) + ". " + ocs.getString(1));
}
}
conn.close();
} catch (ClassNotFoundException e) {
System.out.println("Driver Not Found: " + e);
} catch (SQLException e) {
System.out.println("SQL Error." + e);
}
}
}
x_cust_account_id = 3472
x_account_number = 1745
x_party_id = 3575
x_party_number = 1647
x_profile_id = 1483
x_return_status = S
x_msg_count = 0
x_msg_data =
Created a record in the HZ_CUST_ACCOUNTS table.
select cust_account_id, party_id, account_number, account_name
from hz_cust_accounts
where cust_account_id = 3472;
The following table provides information about this select statement.
CUST_ACCOUNT_ID | PARTY_ID | ACCOUNT_NUMBER | ACCOUNT_NAME |
---|---|---|---|
3472 | 3575 | 1745 | John's A/c |
Created a record in the HZ_PARTIES table
select party_id, party_number, party_name, party_type
from hz_parties
where party_id = 3575;
The following table provides information about this select statement.
PARTY_ID | PARTY_NUMBER | PARTY_NAME | PARTY_TYPE |
---|---|---|---|
3575 | 1647 | John Smith | PERSON |
Created a record in hz_person_profiles table.
select person_profile_id, party_id, person_first_name, person_last_name
from hz_person_profiles
where party_id = 3575;
The following table provides information about this select statement.
PERSON_PROFILE_ID | PARTY_ID | PERSON_FIRST_NAME | PERSON_LAST_NAME |
---|---|---|---|
1483 | 3575 | John | Smith |
Created a record in hz_customer_profiles.
select cust_account_profile_id, cust_account_id, profile_class_id, collector_id
from hz_customer_profiles
where cust_account_id = 3472;
The following table provides information about this select statement.
CUST_ACCOUNT_PROFILE_ID | CUST_ACCOUNT_ID | PROFILE_CLASS_ID | COLLECTOR_ID |
---|---|---|---|
3691 | 3472 | 0 | 1000 |
This procedure creates a site for the account created in previous example, using an existing site.
DECLARE
p_cust_acct_site_rec hz_cust_account_site_v2pub.cust_acct_site_rec_type;
x_return_status VARCHAR2(2000);
x_msg_count NUMBER;
x_msg_data VARCHAR2(2000);
x_cust_acct_site_id NUMBER;
BEGIN
p_cust_acct_site_rec.cust_account_id := 3472;
p_cust_acct_site_rec.party_site_id := 1024;
p_cust_acct_site_rec.language := 'US';
p_cust_acct_site_rec.created_by_module := 'TCA-EXAMPLE';
hz_cust_account_site_v2pub.create_cust_acct_site(
'T',
p_cust_acct_site_rec,
x_cust_acct_site_id,
x_return_status,
x_msg_count,
x_msg_data);
dbms_output.put_line(SubStr('x_return_status = '||x_return_status,1,255));
dbms_output.put_line('x_msg_count = '||TO_CHAR(x_msg_count));
dbms_output.put_line(SubStr('x_msg_data = '||x_msg_data,1,255));
IF x_msg_count >1 THEN
FOR I IN 1..x_msg_count
LOOP
dbms_output.put_line(I||'. '||SubStr(FND_MSG_PUB.Get(p_encoded => FND_API.G_FALSE ), 1, 255));
END LOOP;
END IF;
END;
import java.math.BigDecimal;
import java.sql.Timestamp;
import java.sql.DriverManager;
import java.sql.SQLException;
import oracle.jdbc.driver.OracleConnection;
import oracle.jdbc.driver.OracleCallableStatement;
import oracle.jdbc.driver.OracleTypes;
import oracle.apps.ar.hz.v2api.HzCustAccountSiteV2Pub;
class CreateCustAcctSite {
public static void main(String[] args) throws Exception {
HzCustAccountSiteV2Pub.CustAcctSiteRec p_cust_acct_site_rec = new HzCustAccountSiteV2Pub.CustAcctSiteRec();
BigDecimal[] x_cust_account_site_id = new BigDecimal[1];
String[] x_return_status = new String[1];
BigDecimal[] x_msg_count = new BigDecimal[1];
String[] x_msg_data = new String[1];
try {
Class.forName ("oracle.jdbc.driver.OracleDriver");
OracleConnection conn = (OracleConnection)
DriverManager.getConnection (
"jdbc:oracle:thin:@ap103fam:1521:findv115",
"apps", "apps");
HzCustAccountSiteV2Pub custaccountsiteV2Pub = new HzCustAccountSiteV2Pub();
p_cust_acct_site_rec.cust_account_id = new BigDecimal("3472");
p_cust_acct_site_rec.party_site_id = new BigDecimal("1024");
p_cust_acct_site_rec.language = "US";
p_cust_acct_site_rec.created_by_module = "TCA_EXAMPLE";
custaccountsiteV2Pub.createCustAcctSite(
conn
, "T"
, p_cust_acct_site_rec
, x_cust_account_site_id
, x_return_status
, x_msg_count
, x_msg_data
);
System.out.println( "x_return_status = " + x_return_status[0] );
System.out.println( "x_msg_count = " + x_msg_count[0] );
System.out.println( "x_msg_data = " + x_msg_data[0] );
if (x_msg_count[0].intValue() > 1) {
OracleCallableStatement ocs = null;
for (int i=0; i<x_msg_count[0].intValue(); i++) {
ocs = (OracleCallableStatement)conn.prepareCall(
"begin ? := fnd_msg_pub.get( p_encoded => 'F' ); end;");
ocs.registerOutParameter(1, OracleTypes.VARCHAR);
ocs.execute();
System.out.println((i + 1) + ". " + ocs.getString(1));
}
}
conn.close();
} catch (ClassNotFoundException e) {
System.out.println("Driver Not Found: " + e);
} catch (SQLException e) {
System.out.println("SQL Error." + e);
}
}
}
x_return_status = S
x_msg_count = 0
x_msg_data =
x_cust_acct_site_id = 3580
select cust_acct_site_id, cust_account_id, party_site_id, org_id
from hz_cust_acct_sites_all
where cust_acct_site_id = 3580;
The following table provides information about this select statement.
CUST_ACCT_SITE_ID | CUST_ACCOUNT_ID | PARTY_SITE_ID | ORG_ID |
---|---|---|---|
3580 | 3472 | 1024 | 204 |
This procedure creates a customer account site use for the customer account site created in the previous example.
DECLARE
p_cust_site_use_rec HZ_CUST_ACCOUNT_SITE_V2PUB.CUST_SITE_USE_REC_TYPE;
p_customer_profile_rec HZ_CUSTOMER_PROFILE_V2PUB.CUSTOMER_PROFILE_REC_TYPE;
x_site_use_id NUMBER;
x_return_status VARCHAR2(2000);
x_msg_count NUMBER;
x_msg_data VARCHAR2(2000);
BEGIN
p_cust_site_use_rec.cust_acct_site_id := 3580;
p_cust_site_use_rec.site_use_code := 'INV';
p_cust_site_use_rec.location := 'TCA';
p_cust_site_use_rec.created_by_module := 'TCA_EXAMPLE';
hz_cust_account_site_v2pub.create_cust_site_use(
'T',
p_cust_site_use_rec,
p_customer_profile_rec,
'',
'',
x_site_use_id,
x_return_status,
x_msg_count,
x_msg_data);
dbms_output.put_line(SubStr('x_return_status = '||x_return_status,1,255));
dbms_output.put_line('x_msg_count = '||TO_CHAR(x_msg_count));
dbms_output.put_line(SubStr('x_msg_data = '||x_msg_data,1,255));
IF x_msg_count >1 THEN
FOR I IN 1..x_msg_count
LOOP
dbms_output.put_line(I||'. '||SubStr(FND_MSG_PUB.Get(p_encoded => FND_API.G_FALSE ), 1, 255));
END LOOP;
END IF;
END;
import java.math.BigDecimal;
import java.sql.Timestamp;
import java.sql.DriverManager;
import java.sql.SQLException;
import oracle.jdbc.driver.OracleConnection;
import oracle.jdbc.driver.OracleCallableStatement;
import oracle.jdbc.driver.OracleTypes;
import oracle.apps.ar.hz.v2api.HzCustAccountSiteV2Pub;
import oracle.apps.ar.hz.v2api.HzCustomerProfileV2Pub;;
class CreateCustSiteUse {
public static void main(String[] args) throws Exception {
HzCustAccountSiteV2Pub.CustSiteUseRec p_cust_site_use_rec = new HzCustAccountSiteV2Pub.CustSiteUseRec();
HzCustomerProfileV2Pub.CustomerProfileRec p_customer_profile_rec = new HzCustomerProfileV2Pub.CustomerProfileRec();
BigDecimal[] x_site_use_id = new BigDecimal[1];
String[] x_return_status = new String[1];
BigDecimal[] x_msg_count = new BigDecimal[1];
String[] x_msg_data = new String[1];
try {
Class.forName ("oracle.jdbc.driver.OracleDriver");
OracleConnection conn = (OracleConnection)
DriverManager.getConnection (
"jdbc:oracle:thin:@ap103fam:1521:findv115",
"apps", "apps");
HzCustAccountSiteV2Pub custaccountsiteV2Pub = new HzCustAccountSiteV2Pub();
p_cust_site_use_rec.cust_acct_site_id = new BigDecimal("3580");
p_cust_site_use_rec.site_use_code = "INV";
p_cust_site_use_rec.location = "TCA";
p_cust_site_use_rec.created_by_module = "TCA_EXAMPLE";
custaccountsiteV2Pub.createCustSiteUse(
conn
, "T"
, p_cust_site_use_rec
, p_customer_profile_rec
, "T"
, "T"
, x_site_use_id
, x_return_status
, x_msg_count
, x_msg_data
);
System.out.println( "x_return_status = " + x_return_status[0] );
System.out.println( "x_msg_count = " + x_msg_count[0] );
System.out.println( "x_msg_data = " + x_msg_data[0] );
if (x_msg_count[0].intValue() > 1) {
OracleCallableStatement ocs = null;
for (int i=0; i<x_msg_count[0].intValue(); i++) {
ocs = (OracleCallableStatement)conn.prepareCall(
"begin ? := fnd_msg_pub.get( p_encoded => 'F' ); end;");
ocs.registerOutParameter(1, OracleTypes.VARCHAR);
ocs.execute();
System.out.println((i + 1) + ". " + ocs.getString(1));
}
}
conn.close();
} catch (ClassNotFoundException e) {
System.out.println("Driver Not Found: " + e);
} catch (SQLException e) {
System.out.println("SQL Error." + e);
}
}
}
x_site_use_id = 3756
x_return_status = S
x_msg_count = 0
x_msg_data =
select site_use_id, cust_acct_site_id, site_use_code, location, org_id
from hz_cust_site_uses_all
where site_use_id = 3756;
The following table provides information about this select statement.
SITE_USE_ID | CUST_ACCT_SITE_ID | SITE_USE_CODE | LOCATION | ORG_ID |
---|---|---|---|---|
3756 | 3580 | INV | TCA | 204 |
This example updates the customer account record that was created earlier by setting the account_name column to null and the customer_type column to R.
To update an attribute to null in the PL/SQL API, you need to set the attribute's value to FND_API.G_MISS_XXX.
DECLARE
p_cust_account_rec HZ_CUST_ACCOUNT_V2PUB.CUST_ACCOUNT_REC_TYPE;
p_object_version_number NUMBER;
x_return_status VARCHAR2(2000);
x_msg_count NUMBER;
x_msg_data VARCHAR2(2000);
BEGIN
p_cust_account_rec.cust_account_id := 3472;
p_cust_account_rec.customer_type := 'R';
p_cust_account_rec.account_name := FND_API.G_MISS_CHAR;
-- get the object version number of the current record
select object_version_number
into p_object_version_number
from hz_cust_accounts
where cust_account_id = 3472;
hz_cust_account_v2pub.update_cust_account(
'T',
p_cust_account_rec,
p_object_version_number,
x_return_status,
x_msg_count,
x_msg_data);
dbms_output.put_line(SubStr('x_return_status = '||x_return_status,1,255));
dbms_output.put_line('x_msg_count = '||TO_CHAR(x_msg_count));
dbms_output.put_line(SubStr('x_msg_data = '||x_msg_data,1,255));
IF x_msg_count >1 THEN
FOR I IN 1..x_msg_count
LOOP
dbms_output.put_line(I||'. '||SubStr(FND_MSG_PUB.Get(p_encoded => FND_API.G_FALSE ), 1, 255));
END LOOP;
END IF;
END;
You must set the attribute's value to null to update an attribute to null. This procedure is different from that of the PL/SQL API.
import java.math.BigDecimal;
import java.sql.Timestamp;
import java.sql.DriverManager;
import java.sql.SQLException;
import oracle.jdbc.driver.OracleConnection;
import oracle.jdbc.driver.OracleCallableStatement;
import oracle.jdbc.driver.OracleTypes;
import oracle.jdbc.driver.OracleResultSet;
import oracle.apps.ar.hz.v2api.HzCustAccountV2Pub;
class UpdateCustAccount {
public static void main(String[] args) throws Exception {
HzCustAccountV2Pub.CustAccountRec p_cust_account_rec = new HzCustAccountV2Pub.CustAccountRec();
String[] x_return_status = new String[1];
BigDecimal[] x_msg_count = new BigDecimal[1];
String[] x_msg_data = new String[1];
BigDecimal[] p_object_version_number = new BigDecimal[1];
try {
Class.forName ("oracle.jdbc.driver.OracleDriver");
OracleConnection conn = (OracleConnection)
DriverManager.getConnection (
"jdbc:oracle:thin:@ap103fam:1521:findv115",
"apps", "apps");
HzCustAccountV2Pub custAccountV2Pub = new HzCustAccountV2Pub();
p_cust_account_rec.cust_account_id = new BigDecimal("3472");
p_cust_account_rec.customer_type = "R";
p_cust_account_rec.account_name = null;
-- please note, you should pass the current value of object
-- version number column for this record
p_object_version_number [0]= new BigDecimal("1");
custAccountV2Pub.updateCustAccount(
conn
, "F"
, p_cust_account_rec
, p_object_version_number
, x_return_status
, x_msg_count
, x_msg_data
);
System.out.println( "x_return_status = " + x_return_status[0] );
System.out.println( "x_msg_count = " + x_msg_count[0] );
System.out.println( "x_msg_data = " + x_msg_data[0] );
if (x_msg_count[0].intValue() > 1) {
OracleCallableStatement ocs = null;
for (int i=0; i<x_msg_count[0].intValue(); i++) {
ocs = (OracleCallableStatement)conn.prepareCall(
"begin ? := fnd_msg_pub.get( p_encoded => 'F' ); end;");
ocs.registerOutParameter(1, OracleTypes.VARCHAR);
ocs.execute();
System.out.println((i + 1) + ". " + ocs.getString(1));
}
}
conn.close();
} catch (ClassNotFoundException e) {
System.out.println("Driver Not Found: " + e);
} catch (SQLException e) {
System.out.println("SQL Error." + e);
}
}
}
p_object_version_number = 2
x_return_status = S
x_msg_count = 0
x_msg_data =
select cust_account_id, customer_type, account_name
from hz_cust_accounts
where cust_account_id = 3472;
The following table provides information about this select statement.
CUST_ACCOUNT_ID | CUSTOMER_TYPE | ACCOUNT_NAME |
---|---|---|
3472 | R |
This example involves processing two attribute groups.
DECLARE
------------------------------
-- Declare Primary Keys --
------------------------------
l_org_profile_id NUMBER;
---------------------------------------------------
-- Declare row and data objects and metadata --
---------------------------------------------------
l_user_attr_data_table EGO_USER_ATTR_DATA_TABLE;
l_user_attr_row_table EGO_USER_ATTR_ROW_TABLE;
l_application_id NUMBER;
l_attr_group_type VARCHAR2(40);
l_attr_group1_name VARCHAR2(30);
l_attr_group2_name VARCHAR2(30);
---------------------------------------
-- Declare various testing variables --
---------------------------------------
l_start_time DATE;
l_end_time DATE;
x_failed_row_id_list VARCHAR2(10000);
x_return_status VARCHAR2(1);
x_errorcode NUMBER;
x_msg_count NUMBER;
x_msg_data VARCHAR2(1000);
BEGIN
--------------------------------------------------
-- Initialize variables for this sample run --
--------------------------------------------------
l_org_profile_id := 204;
l_application_id := 222;
l_attr_group_type := 'HZ_ORG_PROFILES_GROUP';
l_attr_group1_name := 'TCA_SAMPLE_GROUP';
l_attr_group2_name := 'TCA_SAMPLE_GROUP2';
-------------------------------------------------------
-- Create three row objects. (If any attribute --
-- groups were associated at the Revision level, --
-- pass the appropriate Revision ID as DATA_LEVEL_1) --
-------------------------------------------------------
l_user_attr_row_table :=
EGO_USER_ATTR_ROW_TABLE(
EGO_USER_ATTR_ROW_OBJ(
1 --ROW_IDENTIFIER - identifies the row number within the table
,null --ATTR_GROUP_ID
,l_application_id --ATTR_GROUP_APP_ID
,l_attr_group_type --ATTR_GROUP_TYPE
,l_attr_group1_name --ATTR_GROUP_NAME
,null --DATA_LEVEL_1
,null --DATA_LEVEL_2
,null --DATA_LEVEL_3
,EGO_USER_ATTRS_DATA_PVT.G_SYNC_MODE) --TRANSACTION_TYPE ( This control the Mode(CREATE/UPDATE/DELETE)
,EGO_USER_ATTR_ROW_OBJ(
2
,null
,l_application_id
,l_attr_group_type
,l_attr_group2_name
,null
,null
,null
,EGO_USER_ATTRS_DATA_PVT.G_SYNC_MODE)
);
-- NOTE: OTHER ALLOWED MODES
------------------------------
-- G_CREATE_MODE
-- G_UPDATE_MODE
-- G_DELETE_MODE
-- G_SYNC_MODE
------------------------------------------------------
-- Create a data object for each attribute value to --
-- process in each row. --
------------------------------------------------------
l_user_attr_data_table :=
EGO_USER_ATTR_DATA_TABLE(
EGO_USER_ATTR_DATA_OBJ(
1 --ROW_IDENTIFIER
,'Attribute1' --ATTR_NAME ( Internal Name )
,'Test Data Updated' --ATTR_VALUE_STR ( Value for Attribute1 )
,null --ATTR_VALUE_NUM
,null --ATTR_VALUE_DATE
,null --ATTR_DISP_VALUE
,null --ATTR_UNIT_OF_MEASURE
,null --USER_ROW_IDENTIFIER
),
EGO_USER_ATTR_DATA_OBJ(
1
,'Attribute2'
,null
,100
,null
,null
,null
,null
),
EGO_USER_ATTR_DATA_OBJ(
2
,'Attribute1'
,'ACME Materials UPDATED'
,null
,null
,null
,null
,null
),
EGO_USER_ATTR_DATA_OBJ(
2
,'Attribute2'
,'Test Data for Attribute group 2'
,null
,null
,null
,null
,null
)
);
l_start_time := SYSDATE;
------------------------------------------------------------
-- In the following call, several parameters were left --
-- to be defaulted; for more details and the complete --
-- parameter list consult the EGO_ITEM_PUB documentation --
------------------------------------------------------------
HZ_EXTENSIBILITY_PUB.Process_Organization_Record
(
p_api_version => 1.0
,p_org_profile_id => l_org_profile_id
,p_attributes_row_table => l_user_attr_row_table
,p_attributes_data_table => l_user_attr_data_table
,p_debug_level => 3
,p_commit => FND_API.G_TRUE
,x_failed_row_id_list => x_failed_row_id_list
,x_return_status => x_return_status
,x_errorcode => x_errorcode
,x_msg_count => x_msg_count
,x_msg_data => x_msg_data
);
l_end_time := SYSDATE;
DBMS_OUTPUT.Put_Line('After Process_User_Attrs_For_Item, x_return_status is:
'||x_return_status||', x_msg_count is: '||x_msg_count||' and x_msg_data is: '||x_msg_data);
IF (LENGTH(x_failed_row_id_list) > 0) THEN
DBMS_OUTPUT.Put_Line('List of rows that failed: '||x_failed_row_id_list);
DECLARE
l_errors_tbl ERROR_HANDLER.Error_Tbl_Type;
BEGIN
ERROR_HANDLER.Get_Message_List(l_errors_tbl);
FOR i IN 1..l_errors_tbl.COUNT
LOOP
DBMS_OUTPUT.Put_Line('Message: '||l_errors_tbl(i).message_text);
DBMS_OUTPUT.Put_Line('Msg Type: '||l_errors_tbl(i).message_type);
END LOOP;
END;
END IF;
DBMS_OUTPUT.Put_Line('========== Performance ==========');
DBMS_OUTPUT.Put_Line('The call started at:
'||TO_CHAR(l_start_time,EGO_USER_ATTRS_COMMON_PVT.G_DATE_FORMAT));
DBMS_OUTPUT.Put_Line('The call ended at: '||TO_CHAR(l_end_time,
EGO_USER_ATTRS_COMMON_PVT.G_DATE_FORMAT));
DBMS_OUTPUT.Put_Line('Elapsed time in seconds: '||TO_CHAR((l_end_time -
l_start_time)*86400));
END;
Run the following query and verify the data.
SELECT * FROM HZ_ORG_PROFILES_EXT_VL WHERE ORGANIZATION_PROFILE_ID = :1
Copyright © 2006, 2010, Oracle and/or its affiliates. All rights reserved.