Tuesday, July 5, 2011

Service Request Creation using seeded API

TYPE notes_rec IS RECORD (
NOTE VARCHAR2(2000) := FND_API.G_MISS_CHAR,
NOTE_DETAIL VARCHAR2(32767) := FND_API.G_MISS_CHAR,
NOTE_TYPE VARCHAR2(240) := FND_API.G_MISS_CHAR,
NOTE_CONTEXT_TYPE_01 VARCHAR2(30) := FND_API.G_MISS_CHAR,
NOTE_CONTEXT_TYPE_ID_01 NUMBER := FND_API.G_MISS_NUM,
NOTE_CONTEXT_TYPE_02 VARCHAR2(30) := FND_API.G_MISS_CHAR,
NOTE_CONTEXT_TYPE_ID_02 NUMBER := FND_API.G_MISS_NUM,
NOTE_CONTEXT_TYPE_03 VARCHAR2(30) := FND_API.G_MISS_CHAR,
NOTE_CONTEXT_TYPE_ID_03 NUMBER := FND_API.G_MISS_NUM

);
TYPE notes_table IS TABLE OF notes_rec INDEX BY BINARY_INTEGER;


**** MAIN PROGRAM ****
DECLARE
lx_request_id NUMBER;
lx_request_number VARCHAR2 (50);
lx_interaction_id NUMBER;
lx_msg_index_out NUMBER;
l_service_request_rec cs_servicerequest_pub.service_request_rec_type;
l_notes_table cs_servicerequest_pub.notes_table;
l_notes_table_init cs_servicerequest_pub.notes_table;
l_contacts_tab cs_servicerequest_pub.contacts_table;
l_incident_severity_id cs_incident_severities_tl.incident_severity_id%TYPE;
l_incident_urgency_id cs_incident_urgencies_vl.incident_urgency_id%TYPE;
l_incident_type_id cs_incident_types_tl.incident_type_id%TYPE;
l_incident_status_id cs_incident_statuses_tl.incident_status_id%TYPE;
l_default_sr_owner NUMBER (20);
p_return_status VARCHAR2(5);
lx_msg_count NUMBER;
lx_msg_data VARCHAR2(2000);
lx_return_status VARCHAR2(1);

BEGIN

APPS.FND_GLOBAL.apps_initialize (,,);
--Initializing the return status to Null
p_return_status := 'S';
l_default_sr_owner := NULL;
l_incident_severity_id := NULL;
l_incident_urgency_id := NULL;
l_incident_type_id := NULL;
l_incident_status_id := NULL;

--Creating Service Request if all the default values are derived successfully.
IF (p_return_status = 'S')
THEN
--populating the Service Request record type.
--
--
l_service_request_rec.request_date := SYSDATE;
l_service_request_rec.type_id := ;
l_service_request_rec.status_id :=
l_service_request_rec.severity_id := ;
l_service_request_rec.urgency_id := ;
l_service_request_rec.summary := 'XX TEMP';
l_service_request_rec.caller_type := 'ORGANIZATION';
l_service_request_rec.customer_id := 217675;
l_service_request_rec.verify_cp_flag := 'N';
l_service_request_rec.sr_creation_channel := 'AUTOMATIC';
l_contacts_tab (1).party_id := 906807;
l_contacts_tab (1).contact_point_id := 563213;
l_contacts_tab (1).contact_point_type := 'EMAIL';
l_contacts_tab (1).primary_flag := 'Y';
l_contacts_tab (1).contact_type := 'PARTY_RELATIONSHIP';
l_service_request_rec.group_type := 'RS_GROUP';
l_service_request_rec.owner_group_id := 100000658;
l_service_request_rec.bill_to_site_use_id := NULL;
l_service_request_rec.ship_to_site_use_id := NULL;
l_service_request_rec.resolution_code := NULL;
l_service_request_rec.resource_type := 'RS_EMPLOYEE';
l_service_request_rec.bill_to_party_id := NULL;
l_service_request_rec.ship_to_party_id := NULL;
l_service_request_rec.owner_id := ;
l_service_request_rec.publish_flag := NULL;
l_service_request_rec.inventory_org_id := 169;
l_service_request_rec.created_by := NVL (TO_NUMBER (fnd_profile.VALUE ('USER_ID')),-1);

BEGIN --Calling SR Create API
cs_servicerequest_pub.create_servicerequest
(p_api_version => 2.0,
p_init_msg_list => fnd_api.g_true,
p_commit => fnd_api.g_false,
x_return_status => lx_return_status,
x_msg_count => lx_msg_count,
x_msg_data => lx_msg_data,
p_resp_appl_id => fnd_global.resp_appl_id,
p_resp_id => fnd_global.resp_id,
p_user_id => fnd_global.user_id,
p_login_id => TO_NUMBER (fnd_profile.VALUE('LOGIN_ID')),
p_org_id => fnd_global.org_id,
p_request_id => NULL,
p_request_number => NULL,
p_service_request_rec => l_service_request_rec,
p_notes => l_notes_table,
p_contacts => l_contacts_tab,
x_request_id => lx_request_id,
x_request_number => lx_request_number,
x_interaction_id => lx_interaction_id,
x_workflow_process_id => lx_workflow_process_id
);
EXCEPTION
WHEN OTHERS THEN
DBMS_OUTPUT.PUT_LINE(' Service Request API Error.');
END;

IF ( lx_return_status = fnd_api.g_ret_sts_success AND lx_request_id IS NOT NULL )
THEN
COMMIT;
DBMS_OUTPUT.PUT_LINE ('SUCCESS');
DBMS_OUTPUT.PUT_LINE (' SR NUMBER: ' || lx_request_number);
DBMS_OUTPUT.PUT_LINE (' SR ID: ' || lx_request_id);
ELSE --Error in Creating SR ,populating FND_LOG
IF (fnd_msg_pub.count_msg >= 1)
THEN
FOR j IN 1 .. fnd_msg_pub.count_msg
LOOP
fnd_msg_pub.get (p_msg_index => j,
p_encoded => 'F',
p_data => lx_msg_data,
p_msg_index_out => lx_msg_index_out
);

DBMS_OUTPUT.PUT_LINE (' Service Request Creation Error .' || lx_msg_data);

END LOOP;
END IF;
END IF;
END IF; --IF (p_return_status ='S') THEN
END;

No comments:

Post a Comment