Installed base for call center?
Hi,
for the CIC implementation where we are going with typical call center functionality where agents handle incoming calls with inquiries and complaints, do we need the installed base? can anyone comment?
we dont have any returns or warranty for our products
we sell them, if there is a prob, we resend the product again and customer can keep both...
thanks,
Hi,
Installed base is basically required to keep track of products installed at customer place.
If you can verywell identify your customer place where product is installed.
for eg.
if you install 100 printers at say XYZ company, but this 100 printers may be installed at different branches of XYZ company, it may be across different cities.
This information you cannot capture for all the 100 printers sold in any of the masterdata.
Thus you can use installed base to keep a track, how may printers installed at what location.
During incoming call u identify the BP i.e XYZ ask for the location or printer serial number (Use Individual objects in CRM) to track the printer.
If you don't have such complex scenario and also you don't need returns or warranty so u can do without installed base.
Best Regards,
Pratik Patel
<b>Reward with points!</b>
Similar Messages
-
No Configuration In Install base for procured Items
No configuration is build in Install base for Configured Items procured thru PO.
Problem Description:
We created a PO for a Configured Item and received into an Org ( setup as serialized at receipt) for stocking purpose. The Entire Configuration is not created in Install base. We expected both the Parent and the child ( which are IB-trackable) to be created in the Install base. But the child is not created in the Install base.
We set the profile CSI:Explode BOM as "yes" and still it did not help.
Any ideas
Regards
KumarAlka,
FYI, the error code is as follows...Can you give us the error code?
Also paste the procedure structure that you are using to call the IB API where you are trying to trap the error.
Let us see what we can do.
Thanks
Nagamohan -
Software Metering Report - Install base for all metered software programs - Returns 0
Hi All
I have an issue with one of the software metering reports, Install base for all metered software programs. when run it returns that the metered software is installed on 0 computers.
All usage reports seem to work correctly and I can see usage data for the monitored applications. But anything related to install base such as the one listed above and "Computers that have a metered program installed but have not run the program since
a specific date" either return 0 or are blank.
Any help will be greatly appreciatedHi All
finally found a fix to the problem. It was very closely related to what Gareth had mentioned regarding Asset Intelligence. The actual method of detecting if a program is installed is done through Software Inventory
Under Custom Client Settings i had enabled Software Inventory on client but never setup any rules to gather data. So i created a new rule for all *.exe files and around an hour later the report started to show up clients.
This blog post also describes the method of setting up software inventory correctly
Thanks to all the help and hopefully this will aid anyone else encountering similar problems -
Hi,
Our Client gave a requirement to mass update the additional attributes in Install base for instances in Release 11i.
So I tried the below code to update:
But getting the error:
The Object Version Number passed does not match with the one existing in Installed Base tables.
Can any one please help how to fix it.
Code:
declare
x_instance_rec CSI_DATASTRUCTURES_PUB.INSTANCE_REC;
p_ext_attrib_values CSI_DATASTRUCTURES_PUB.EXTEND_ATTRIB_VALUES_TBL;
p_party_tbl CSI_DATASTRUCTURES_PUB.PARTY_TBL;
p_account_tbl CSI_DATASTRUCTURES_PUB.PARTY_ACCOUNT_TBL;
p_pricing_attrib_tbl CSI_DATASTRUCTURES_PUB.PRICING_ATTRIBS_TBL;
p_org_assignments_tbl CSI_DATASTRUCTURES_PUB.ORGANIZATION_UNITS_TBL;
p_asset_assignment_tbl CSI_DATASTRUCTURES_PUB.INSTANCE_ASSET_TBL;
p_txn_rec CSI_DATASTRUCTURES_PUB.TRANSACTION_REC;
x_instance_id_lst CSI_DATASTRUCTURES_PUB.ID_TBL;
x_return_status VARCHAR2(2000);
x_msg_count NUMBER;
x_msg_data VARCHAR2(2000);
x_msg_index_out NUMBER;
t_output VARCHAR2(2000);
t_msg_dummy NUMBER;
p_validation_level NUMBER;
p_commit VARCHAR2 (5);
p_init_msg_lst VARCHAR2 (500);
cursor stg_tab_cur is select instance_id,Safety_line_type from gewind_ib_iea_values;
TYPE stg_tab IS TABLE OF gewind_ib_iea_values%ROWTYPE INDEX BY BINARY_INTEGER;
stg_tab_var stg_tab;
stg_tab_bin_int BINARY_INTEGER;
BEGIN
x_instance_rec.instance_id := FND_API.G_MISS_NUM;
x_instance_rec.object_version_number := FND_API.G_MISS_NUM;
p_txn_rec.transaction_id := FND_API.G_MISS_NUM;
p_txn_rec.transaction_date := SYSDATE;
p_txn_rec.source_transaction_date := SYSDATE;
p_txn_rec.transaction_type_id := 1;
stg_tab_bin_int :=0;
For gewind_ib_iea_values in stg_tab_cur LOOP
stg_tab_bin_int := stg_tab_bin_int + 1;
P_ext_attrib_values(stg_tab_bin_int).instance_id :=gewind_ib_iea_values.instance_id;
P_ext_attrib_values(stg_tab_bin_int).attribute_id := 10023;
P_ext_attrib_values(stg_tab_bin_int).attribute_value := gewind_ib_iea_values.Safety_line_type;
dbms_output.put_line(P_ext_attrib_values(stg_tab_bin_int).instance_id);
dbms_output.put_line(P_ext_attrib_values(stg_tab_bin_int).attribute_value);
csi_item_instance_pub.update_item_instance(
1.0,
p_commit,
p_init_msg_lst,
1,
x_instance_rec,
p_ext_attrib_values,
p_party_tbl,
p_account_tbl,
p_pricing_attrib_tbl,
p_org_assignments_tbl,
p_asset_assignment_tbl,
p_txn_rec, x_instance_id_lst,
x_return_status,
x_msg_count,
x_msg_data);
commit;
-- Output the results
if x_msg_count > 0 then
for j in 1 .. x_msg_count
loop
fnd_msg_pub.get ( j , FND_API.G_FALSE , x_msg_data , t_msg_dummy );
t_output := ( 'Msg' || To_Char ( j ) || ': ' || x_msg_data );
dbms_output.put_line ( SubStr ( t_output , 1 , 255 ) );
end loop;
end if;
dbms_output.put_line('x_return_status = '||x_return_status);
dbms_output.put_line('x_msg_count = '||TO_CHAR(x_msg_count));
dbms_output.put_line('x_msg_data = '||x_msg_data);
COMMIT;
end loop;
END;
Regards,
RavichanderThis question is Assumed Answered -- It would be great if you could share the solution with us.
Thanks,
Hussein -
Installed Base by Call Transaction
Hi!!
I have the following questions:
1) Can I do a call transaction to IB51 (enjoy) ?
2) Exist a BAPI for installed base?
Thanks to all!!Hello Umberto,
there are two OSS-notes (178473 and 189231) regarding IB51 and Batchinput. Following these notes, you can call IB51 via Call Transaction. But i've never (until Rel.4.7) found a BAPI .
Regards Wolfgang -
How to send a Announcements in CRM WebUI for Call center role.
Hi
In some cases if we are shutdowing the prodcution server we want to send a group message to all the users in call center.
How to do this.
Please suggest.
Regards
Hanu MHi,
in the IC_Webclient and in the CMS-Role you could use broadcast messaging for this.
your message is displayed on the bottom of the screen as ticker.
Add in SAPGUI a new favorite
BSP-Application: BSP_BROADCAST
Start-Page: abap_broadcast.htm
Kind regards
Manfred -
In-app vs 3rd party service purchases for call center
Dear Support
I am creating a service that gives an opportunity for a user to have audio / video consultation with a specialist sitting in my real-world call-center. My service has a web interface as well with the same functionality as the mobile app.
To be able to get a consultation user should buy "consultations" from either mobile app or website. Consultations purchased from web should be available in application for the same user and vice versa. So basically mobile application is just an extension of my business.
Could you please advice should I use in-app or external payment gate in mobile app ?aasmbat wrote:
Dear Support
My service has a web interface as well with the same functionality as the mobile app.
Then an app isn't necessary according to the App Store Review Guidelines
https://developer.apple.com/appstore/resources/approval/guidelines.html#function ality
2.12 Apps that are not very useful, unique, are simply web sites bundled as Apps, or do not provide any lasting entertainment value may be rejected.
The guideline does say "may" but your reason for having an app seems a bit weak. -
Dynamic Scripting for Call Center Surveys
Hi All,
I need to create dynamic scripting for Call Centres. Any idea how dynamic scripting can be done.
Thanks a lot.
AmigaHi Raja,
Basically, there should be a provision to create/modify a transaction and questions based on the response provided. So if a question is asked in a survey and the response is "Yes", the next question should be different to the one for a "No" answer. Similarly there should be a provision to create actions based on responses.
Hope this makes it a bit clearer.
Thanks
Amiga -
Hi everybody,
Do you know any bapi / F.M. for the creation of an istall base, with one equipment and several materials?
Thank you
AndreaHi everybody,
Do you know any bapi / F.M. for the creation of an istall base, with one equipment and several materials?
Thank you
Andrea -
Hierarchy Category for Installed Base creation
Hi All,
We are implementing service management using CRM 5.0 and R/3. We have created some custom material types in R/3 and downloaded to CRM. In CRM configuration "Assignment per Product Type for application Product" the HierarchyID R3PRODSTY is assigned to Product Type "Material". Now, I want to assign the Object family 0401 to a category to be able to create Installed Base records. I cannot modify the Hierarchy R3PRODSTY since it came from R/3. So I created a new hierarchy "IBase" and assigned the Object family and I assigned this hierarchy to Product Type "Material". With this I am able to create a Ibase but not a product because I changed the assignment. Is there straight forward way to have object family in the Hierarchy R3PRODSTYP" or to be able to create products and Installed Bases simultaneously? Any Input will be greatly appreciated.
Thanks,
Uday.Hi Ankit ,
There is some SAP F1 Help. FROM SPRO
That may answer your question.
Activate Partner and Address Inheritance
Use
In this activity, you can make the following settings for each installed base category:
Activate partner and adress inheritance for a specified number of installed base hierarchy levels
The inheritance of partners and addresses is a logical rather than a physical inheritance.
Activate calculation of geographical coordinates from address information when address data is created or changed
Enable changes to an installed base for a validity date that is earlier than the system date.
Partner assignment or address assignment is used during the search for components to take partner inheritance and address inheritance into account.
For example, this means that in the interaction center or service processes, all components can be found using the business partner.
Default Settings
No standard settings are provided.
The settings are optional. If you do not enter any data, the function is not used.
Activities
To activate partner and adress inheritance, select the PInherit. or AdrInherit. checkbox, respectively, and specify the number of levels in the installed base hierachy that should inherit partners or addresses.
Note: If want partners or addresses to be inherited by all lower-level components in the hierarchy, enter 0 (zero).
Regards
Logu -
Status profile for Install base component
Hi,
As part of project requirement,we have to maintain status profile at Install base component level.Wwe are maintaining one install base for single customer and all his multiple locations comes under this install base.So,as per client requirement we have to mainatin status at Install base object level.
As per standard functionality,we can maintain status profile at Install base header in status management>status profile>object type
But,I could not find how to maintain status profile at Install base component of type object level.I think we have to do enhancement for it.
Request expert opinion on this.If its configuration,then how to do this.If its BADI,then what are details of BADI.If its enhancement,then details of it.
Thanks in advance
regards
NareshHi,
You need to add the below Object Types in your user status profile.
Go into your user status profile and click on the Object Types as highlighted below and then enable the list of object types. Then you will be able to see the status profile in the IBase header.
Enable these object types for IBase.
Allowed Object Types
General Object
Ibase Header
Product Master Data
Regards,
Siraj -
Issue in updating Install Base Owner account
Hi,
I'm using csi_item_instance_pub.update_item_instance API to update ownership and installed at details in Install Base. When I run my script, I do not get any error, but the party account details do not get updated. The owner party gets updated successfully. Even the installation details and operating unit details get updated, but the owner party account and Bill-to and Ship-to do not get updated. I'm posting my code here for details. If anyone could let me know what am I doing wrong, I would really appreciate that.
TIA,
Alka.
DECLARE
ln_order_num NUMBER;
lc_p_sno VARCHAR2(30); -- Variable for printer serial no.
CURSOR ib_cur IS
SELECT cii.instance_id
,cii.serial_number
,cii.inventory_item_id
,cii.object_version_number
FROM csi_item_instances cii
WHERE cii.instance_id = &instance_id
ORDER BY 1;
TYPE ib_rec_tbl_type IS TABLE OF ib_cur%ROWTYPE;
ib_rec_tbl ib_rec_tbl_type;
-- Variables needed to call the Item Instance update API
l_api_version CONSTANT NUMBER := 1.0;
l_msg_count NUMBER;
l_msg_data VARCHAR2(2000);
l_msg_index NUMBER;
l_instance_id_lst csi_datastructures_pub.id_tbl;
l_instance_header_rec csi_datastructures_pub.instance_header_rec;
l_party_header_tbl csi_datastructures_pub.party_header_tbl;
l_party_acct_header_tbl csi_datastructures_pub.party_account_header_tbl;
l_org_unit_header_tbl csi_datastructures_pub.org_units_header_tbl;
l_instance_rec csi_datastructures_pub.instance_rec;
l_party_tbl csi_datastructures_pub.party_tbl;
l_account_tbl csi_datastructures_pub.party_account_tbl;
l_pricing_attrib_tbl csi_datastructures_pub.pricing_attribs_tbl;
l_org_assignments_tbl csi_datastructures_pub.organization_units_tbl;
l_asset_assignment_tbl csi_datastructures_pub.instance_asset_tbl;
l_ext_attrib_values_tbl csi_datastructures_pub.extend_attrib_values_tbl;
l_pricing_attribs_tbl csi_datastructures_pub.pricing_attribs_tbl;
l_ext_attrib_tbl csi_datastructures_pub.extend_attrib_values_tbl;
l_ext_attrib_def_tbl csi_datastructures_pub.extend_attrib_tbl;
l_asset_header_tbl csi_datastructures_pub.instance_asset_header_tbl;
l_txn_rec csi_datastructures_pub.transaction_rec;
l_install_location_id NUMBER;
l_return_status VARCHAR2(5);
lc_init_msg_lst VARCHAR2(1) := 'T';
ln_validation_level NUMBER;
lc_error_text VARCHAR2(4000);
l_install_location_type_code csi_item_instances.install_location_type_code%TYPE;
j BINARY_INTEGER := 0;
l_party_tbl_idx BINARY_INTEGER;
BEGIN
--Create a savepoint
-- SAVEPOINT dcrd_csi_upd_ib_snm;
OPEN ib_cur;
FETCH ib_cur BULK COLLECT
INTO ib_rec_tbl;
CLOSE ib_cur;
IF ib_rec_tbl.COUNT > 0
THEN
--fnd_file.put_line(fnd_file.log, 'Begin loop');
dbms_output.put_line('Begin loop');
FOR i IN ib_rec_tbl.FIRST .. ib_rec_tbl.LAST
LOOP
--Set savepoint before processing record.
--SAVEPOINT dcrd_csi_upd_ib_snm;
l_instance_header_rec.instance_id := ib_rec_tbl(i).instance_id;
csi_item_instance_pub.get_item_instance_details(p_api_version => l_api_version
,p_commit => fnd_api.g_false
,p_init_msg_list => fnd_api.g_false
,p_validation_level => fnd_api.g_valid_level_full
,p_instance_rec => l_instance_header_rec
,p_get_parties => fnd_api.g_true
,p_party_header_tbl => l_party_header_tbl
,p_get_accounts => fnd_api.g_true
,p_account_header_tbl => l_party_acct_header_tbl
,p_get_org_assignments => fnd_api.g_true
,p_org_header_tbl => l_org_unit_header_tbl
,p_get_pricing_attribs => fnd_api.g_false
,p_pricing_attrib_tbl =>l_pricing_attribs_tbl
,p_get_ext_attribs => fnd_api.g_false
,p_ext_attrib_tbl => l_ext_attrib_tbl
,p_ext_attrib_def_tbl => l_ext_attrib_def_tbl
,p_get_asset_assignments => fnd_api.g_false
,p_asset_header_tbl => l_asset_header_tbl
,p_resolve_id_columns => fnd_api.g_false
,p_time_stamp => SYSDATE
,x_return_status => l_return_status
,x_msg_count => l_msg_count
,x_msg_data => l_msg_data
lc_error_text := NULL;
l_instance_rec.instance_id := l_instance_header_rec.instance_id;
l_instance_rec.install_date := '12-MAR-2008';
l_instance_rec.install_location_type_code := 'HZ_PARTY_SITES';
l_instance_rec.install_location_id := 97918;
l_instance_rec.location_id := 97918;
l_instance_rec.location_type_code := 'HZ_PARTY_SITES';
l_instance_rec.object_version_number := l_instance_header_rec.object_version_number;
l_txn_rec.transaction_id := fnd_api.g_miss_num;
l_txn_rec.transaction_date := SYSDATE;
l_txn_rec.source_transaction_date := SYSDATE;
l_txn_rec.transaction_type_id := 8; --Id for DATA_CORRECTION transaction type
--Change Owner party details
FOR i IN l_party_header_tbl.FIRST..l_party_header_tbl.LAST
LOOP
IF l_party_header_tbl(i).relationship_type_code = 'OWNER'
THEN
l_party_tbl(j).instance_party_id := l_party_header_tbl(i).instance_party_id;
l_party_tbl(j).relationship_type_code := l_party_header_tbl(i).relationship_type_code;
l_party_tbl(j).party_id := 210617;
l_party_tbl(j).contact_flag := 'N';
l_party_tbl(j).object_version_number := l_party_header_tbl(i).object_version_number;
l_party_tbl_idx := j;
j := j + 1;
END IF;
END LOOP;
dbms_output.put_line('l_party_tbl count is '||l_party_tbl.COUNT);
j := 0;
dbms_output.put_line('l_party_acct_header_tbl count is '||l_party_acct_header_tbl.COUNT);
--Change Owner party account details
FOR i IN l_party_acct_header_tbl.FIRST..l_party_acct_header_tbl.LAST
LOOP
IF l_party_acct_header_tbl(i).relationship_type_code = 'OWNER'
THEN
l_account_tbl(j).ip_account_id := l_party_acct_header_tbl(i).ip_account_id;
l_account_tbl(j).instance_party_id := l_party_acct_header_tbl(i).instance_party_id;
l_account_tbl(j).party_account_id := 61217;
l_account_tbl(j).object_version_number := l_party_acct_header_tbl(i).object_version_number;
l_account_tbl(j).bill_to_address := 77370;
l_account_tbl(j).ship_to_address := 77648;
l_account_tbl(j).parent_tbl_index := l_party_tbl_idx;
j := j + 1;
END IF;
END LOOP;
dbms_output.put_line('l_account_tbl count is '||l_account_tbl.COUNT);
j := 0;
--Change Operating Unit details
FOR i IN l_org_unit_header_tbl.FIRST..l_org_unit_header_tbl.LAST
LOOP
IF l_org_unit_header_tbl(i).relationship_type_code = 'SOLD_FROM'
THEN
l_org_assignments_tbl(j).instance_ou_id := l_org_unit_header_tbl(i).instance_ou_id;
l_org_assignments_tbl(j).instance_id := l_org_unit_header_tbl(i).instance_id;
l_org_assignments_tbl(j).relationship_type_code := l_org_unit_header_tbl(i).relationship_type_code;
l_org_assignments_tbl(j).active_start_date := '12-MAR-2008';
l_org_assignments_tbl(j).operating_unit_id := 86;
l_org_assignments_tbl(j).object_version_number := l_org_unit_header_tbl(i).object_version_number;
END IF;
END LOOP;
-- Call instance update API if a serial no. is to be updated
/*fnd_file.put_line(fnd_file.log
,'Updating IB record for IB# ' || ib_rec_tbl(i).instance_id);*/
dbms_output.put_line('Updating IB record for IB# ' || ib_rec_tbl(i).instance_id);
csi_item_instance_pub.update_item_instance(p_api_version => l_api_version
,p_commit => 'F' --Handled outside API
,p_init_msg_list => lc_init_msg_lst
,p_validation_level => ln_validation_level
,p_instance_rec => l_instance_rec
,p_ext_attrib_values_tbl => l_ext_attrib_values_tbl --Null
,p_party_tbl => l_party_tbl --Null
,p_account_tbl => l_account_tbl --Null
,p_pricing_attrib_tbl => l_pricing_attrib_tbl --Null
,p_org_assignments_tbl => l_org_assignments_tbl --Null
,p_asset_assignment_tbl => l_asset_assignment_tbl --Null
,p_txn_rec => l_txn_rec
,x_instance_id_lst => l_instance_id_lst
,x_return_status => l_return_status
,x_msg_count => l_msg_count
,x_msg_data => l_msg_data);
IF l_return_status <> 'S'
THEN
/*fnd_file.put_line(fnd_file.log
, 'Error updating the install base for IB# ' || ib_rec_tbl(i)
.instance_id);*/
dbms_output.put_line('Error updating the install base for IB# ' || ib_rec_tbl(i)
.instance_id);
FOR i IN 1 .. l_msg_count
LOOP
fnd_msg_pub.get(p_msg_index => -1
,p_encoded => 'F'
,p_data => l_msg_data
,p_msg_index_out => l_msg_index);
lc_error_text := lc_error_text || (substr(l_msg_data, 1, 255));
END LOOP;
dbms_output.put_line(lc_error_text);
--Rollback the transaction if error occured.
--ROLLBACK TO dcrd_csi_upd_ib_snm;
ELSE
/*fnd_file.put_line(fnd_file.log
, 'Install base update successful for IB# ' || ib_rec_tbl(i)
.instance_id);*/
dbms_output.put_line('Install base update successful for IB# ' || ib_rec_tbl(i)
.instance_id);
lc_error_text := 'SUCCESS!';
END IF;
--Update the temporary table record status
--update_status(ib_rec_tbl(i).snm_id, l_return_status, lc_error_text);
END LOOP;
--Commit transactions.
--COMMIT;
END IF;
EXCEPTION
WHEN no_data_found THEN
--fnd_file.put_line(fnd_file.log, 'No records to process');
dbms_output.put_line('No records to process');
WHEN OTHERS THEN
/* fnd_file.put_line(fnd_file.log, 'Error in update_ib procedure');
fnd_file.put_line(fnd_file.log, to_char(SQLCODE) || ' - ' || SQLERRM);
dbms_output.put_line('Error in update_ib procedure');
dbms_output.put_line(to_char(SQLCODE) || ' - ' || SQLERRM);
END;I will try the mass edit. Here is my code.
Thanks,
Alka.
DECLARE
ln_order_num NUMBER;
lc_p_sno VARCHAR2(30); -- Variable for printer serial no.
CURSOR ib_cur IS
SELECT cii.instance_id
,cii.serial_number
,cii.inventory_item_id
,cii.object_version_number
FROM csi_item_instances cii
WHERE cii.instance_id = &instance_id
ORDER BY 1;
TYPE ib_rec_tbl_type IS TABLE OF ib_cur%ROWTYPE;
ib_rec_tbl ib_rec_tbl_type;
-- Variables needed to call the Item Instance update API
l_api_version CONSTANT NUMBER := 1.0;
l_msg_count NUMBER;
l_msg_data VARCHAR2(2000);
l_msg_index NUMBER;
l_instance_id_lst csi_datastructures_pub.id_tbl;
l_instance_header_rec csi_datastructures_pub.instance_header_rec;
l_party_header_tbl csi_datastructures_pub.party_header_tbl;
l_party_acct_header_tbl csi_datastructures_pub.party_account_header_tbl;
l_org_unit_header_tbl csi_datastructures_pub.org_units_header_tbl;
l_instance_rec csi_datastructures_pub.instance_rec;
l_party_tbl csi_datastructures_pub.party_tbl;
l_account_tbl csi_datastructures_pub.party_account_tbl;
l_pricing_attrib_tbl csi_datastructures_pub.pricing_attribs_tbl;
l_org_assignments_tbl csi_datastructures_pub.organization_units_tbl;
l_asset_assignment_tbl csi_datastructures_pub.instance_asset_tbl;
l_ext_attrib_values_tbl csi_datastructures_pub.extend_attrib_values_tbl;
l_pricing_attribs_tbl csi_datastructures_pub.pricing_attribs_tbl;
l_ext_attrib_tbl csi_datastructures_pub.extend_attrib_values_tbl;
l_ext_attrib_def_tbl csi_datastructures_pub.extend_attrib_tbl;
l_asset_header_tbl csi_datastructures_pub.instance_asset_header_tbl;
l_txn_rec csi_datastructures_pub.transaction_rec;
l_install_location_id NUMBER;
l_return_status VARCHAR2(5);
lc_init_msg_lst VARCHAR2(1) := 'T';
ln_validation_level NUMBER;
lc_error_text VARCHAR2(4000);
l_install_location_type_code csi_item_instances.install_location_type_code%TYPE;
j BINARY_INTEGER := 0;
l_party_tbl_idx BINARY_INTEGER := 0;
l_ce_exists BOOLEAN := FALSE;
ln_contact_ip_id NUMBER; --contact_ip_id for preferred CE record in csi_i_parties table.
BEGIN
--Create a savepoint
-- SAVEPOINT dcrd_csi_upd_ib_snm;
OPEN ib_cur;
FETCH ib_cur BULK COLLECT
INTO ib_rec_tbl;
CLOSE ib_cur;
IF ib_rec_tbl.COUNT > 0
THEN
--fnd_file.put_line(fnd_file.log, 'Begin loop');
dbms_output.put_line('Begin loop');
FOR ib IN ib_rec_tbl.FIRST .. ib_rec_tbl.LAST
LOOP
--Set savepoint before processing record.
--SAVEPOINT dcrd_csi_upd_ib_snm;
l_instance_header_rec.instance_id := ib_rec_tbl(ib).instance_id;
csi_item_instance_pub.get_item_instance_details(p_api_version => l_api_version
,p_commit => fnd_api.g_false
,p_init_msg_list => fnd_api.g_false
,p_validation_level => fnd_api.g_valid_level_full
,p_instance_rec => l_instance_header_rec
,p_get_parties => fnd_api.g_true
,p_party_header_tbl => l_party_header_tbl
,p_get_accounts => fnd_api.g_true
,p_account_header_tbl => l_party_acct_header_tbl
,p_get_org_assignments => fnd_api.g_true
,p_org_header_tbl => l_org_unit_header_tbl
,p_get_pricing_attribs => fnd_api.g_false
,p_pricing_attrib_tbl =>l_pricing_attribs_tbl
,p_get_ext_attribs => fnd_api.g_false
,p_ext_attrib_tbl => l_ext_attrib_tbl
,p_ext_attrib_def_tbl => l_ext_attrib_def_tbl
,p_get_asset_assignments => fnd_api.g_false
,p_asset_header_tbl => l_asset_header_tbl
,p_resolve_id_columns => fnd_api.g_false
,p_time_stamp => SYSDATE
,x_return_status => l_return_status
,x_msg_count => l_msg_count
,x_msg_data => l_msg_data
lc_error_text := NULL;
l_instance_rec.instance_id := l_instance_header_rec.instance_id;
l_instance_rec.install_date := '12-MAR-2008';
l_instance_rec.install_location_type_code := 'HZ_PARTY_SITES';
l_instance_rec.install_location_id := 97918;
l_instance_rec.location_id := 97918;
l_instance_rec.location_type_code := 'HZ_PARTY_SITES';
l_instance_rec.object_version_number := l_instance_header_rec.object_version_number;
l_txn_rec.transaction_id := fnd_api.g_miss_num;
l_txn_rec.transaction_date := SYSDATE;
l_txn_rec.source_transaction_date := SYSDATE;
l_txn_rec.transaction_type_id := 8; --Id for DATA_CORRECTION transaction type
--Change Owner party details
j := 0;
FOR i IN l_party_header_tbl.FIRST..l_party_header_tbl.LAST
LOOP
IF l_party_header_tbl(i).relationship_type_code = 'OWNER'
THEN
l_party_tbl(j).instance_party_id := l_party_header_tbl(i).instance_party_id;
l_party_tbl(j).instance_id := l_party_header_tbl(i).instance_id;
l_party_tbl(j).relationship_type_code := l_party_header_tbl(i).relationship_type_code;
l_party_tbl(j).party_source_table := l_party_header_tbl(i).party_source_table;
l_party_tbl(j).party_id := 210617;
l_party_tbl(j).contact_flag := 'N';
l_party_tbl(j).preferred_flag := NULL;
l_party_tbl(j).primary_flag := NULL;
l_party_tbl(j).contact_flag := 'N';
l_party_tbl(j).object_version_number := l_party_header_tbl(i).object_version_number;
l_party_tbl_idx := j;
dbms_output.put_line('index is '||j);
ln_contact_ip_id := l_party_header_tbl(i).instance_party_id;
j := j + 1;
ELSIF l_party_header_tbl(i).relationship_type_code = 'CUSTOMER ENGINEER'
THEN
l_ce_exists := TRUE;
l_party_tbl(j).instance_party_id := l_party_header_tbl(i).instance_party_id;
l_party_tbl(j).instance_id := l_party_header_tbl(i).instance_id;
l_party_tbl(j).relationship_type_code := l_party_header_tbl(i).relationship_type_code;
l_party_tbl(j).party_source_table := 'EMPLOYEE';
l_party_tbl(j).party_id := 9115;
l_party_tbl(j).contact_flag := 'N';
l_party_tbl(j).preferred_flag := 'Y';
l_party_tbl(j).primary_flag := 'Y';
l_party_tbl(j).contact_flag := 'Y';
l_party_tbl(j).contact_ip_id := ln_contact_ip_id;
l_party_tbl(j).object_version_number := l_party_header_tbl(i).object_version_number;
l_party_tbl(j).contact_parent_tbl_index := l_party_tbl_idx;
END IF;
END LOOP;
dbms_output.put_line('l_party_tbl count is '||l_party_tbl.COUNT);
IF NOT l_ce_exists
THEN
FOR i IN l_party_header_tbl.FIRST..l_party_header_tbl.LAST
LOOP
IF l_party_header_tbl(i).relationship_type_code = 'OWNER'
THEN
l_party_tbl(j).instance_party_id := fnd_api.G_MISS_NUM;
l_party_tbl(j).instance_id := l_party_header_tbl(i).instance_id;
l_party_tbl(j).party_source_table := 'EMPLOYEE';
l_party_tbl(j).relationship_type_code := 'CUSTOMER ENGINEER';
l_party_tbl(j).party_id := 9115;
l_party_tbl(j).contact_flag := 'N';
l_party_tbl(j).preferred_flag := 'Y';
l_party_tbl(j).primary_flag := 'Y';
l_party_tbl(j).contact_flag := 'Y';
l_party_tbl(j).contact_ip_id := ln_contact_ip_id;
l_party_tbl(j).object_version_number := l_party_header_tbl(i).object_version_number;
l_party_tbl(j).contact_parent_tbl_index := l_party_tbl_idx;
END IF;
END LOOP;
END IF;
j := 0;
dbms_output.put_line('l_party_acct_header_tbl count is '||l_party_acct_header_tbl.COUNT);
--Change Owner party account details
FOR i IN l_party_acct_header_tbl.FIRST..l_party_acct_header_tbl.LAST
LOOP
IF l_party_acct_header_tbl(i).relationship_type_code = 'OWNER'
THEN
dbms_output.put_line('Adding account details for ip_account_id '||l_party_acct_header_tbl(i).ip_account_id);
l_account_tbl(j).ip_account_id := l_party_acct_header_tbl(i).ip_account_id;
l_account_tbl(j).instance_party_id := l_party_acct_header_tbl(i).instance_party_id;
l_account_tbl(j).party_account_id := 61217;
l_account_tbl(j).object_version_number := l_party_acct_header_tbl(i).object_version_number;
l_account_tbl(j).bill_to_address := 77370;
l_account_tbl(j).ship_to_address := 77648;
l_account_tbl(j).parent_tbl_index := 1;--l_party_tbl_idx;
j := j + 1;
END IF;
END LOOP;
dbms_output.put_line('l_account_tbl count is '||l_account_tbl.COUNT);
j := 0;
--Change Operating Unit details
FOR i IN l_org_unit_header_tbl.FIRST..l_org_unit_header_tbl.LAST
LOOP
IF l_org_unit_header_tbl(i).relationship_type_code = 'SOLD_FROM'
THEN
l_org_assignments_tbl(j).instance_ou_id := l_org_unit_header_tbl(i).instance_ou_id;
l_org_assignments_tbl(j).instance_id := l_org_unit_header_tbl(i).instance_id;
l_org_assignments_tbl(j).relationship_type_code := l_org_unit_header_tbl(i).relationship_type_code;
l_org_assignments_tbl(j).active_start_date := '12-MAR-2008';
l_org_assignments_tbl(j).operating_unit_id := 86;
l_org_assignments_tbl(j).object_version_number := l_org_unit_header_tbl(i).object_version_number;
END IF;
END LOOP;
-- Call instance update API if a serial no. is to be updated
/*fnd_file.put_line(fnd_file.log
,'Updating IB record for IB# ' || ib_rec_tbl(ib).instance_id);*/
dbms_output.put_line('Updating IB record for IB# ' || ib_rec_tbl(ib).instance_id);
csi_item_instance_pub.update_item_instance(p_api_version => l_api_version
,p_commit => 'F' --Handled outside API
,p_init_msg_list => lc_init_msg_lst
,p_validation_level => ln_validation_level
,p_instance_rec => l_instance_rec
,p_ext_attrib_values_tbl => l_ext_attrib_values_tbl --Null
,p_party_tbl => l_party_tbl --Null
,p_account_tbl => l_account_tbl --Null
,p_pricing_attrib_tbl => l_pricing_attrib_tbl --Null
,p_org_assignments_tbl => l_org_assignments_tbl --Null
,p_asset_assignment_tbl => l_asset_assignment_tbl --Null
,p_txn_rec => l_txn_rec
,x_instance_id_lst => l_instance_id_lst
,x_return_status => l_return_status
,x_msg_count => l_msg_count
,x_msg_data => l_msg_data);
IF l_return_status <> 'S'
THEN
/*fnd_file.put_line(fnd_file.log
, 'Error updating the install base for IB# ' || ib_rec_tbl(ib)
.instance_id);*/
dbms_output.put_line('Error updating the install base for IB# ' || ib_rec_tbl(ib)
.instance_id);
FOR i IN 1 .. l_msg_count
LOOP
fnd_msg_pub.get(p_msg_index => -1
,p_encoded => 'F'
,p_data => l_msg_data
,p_msg_index_out => l_msg_index);
lc_error_text := lc_error_text || (substr(l_msg_data, 1, 255));
END LOOP;
dbms_output.put_line(lc_error_text);
--Rollback the transaction if error occured.
--ROLLBACK TO dcrd_csi_upd_ib_snm;
ELSE
/*fnd_file.put_line(fnd_file.log
, 'Install base update successful for IB# ' || ib_rec_tbl(ib)
.instance_id);*/
dbms_output.put_line('Install base update successful for IB# ' || ib_rec_tbl(ib)
.instance_id);
lc_error_text := 'SUCCESS!';
END IF;
--Update the temporary table record status
--update_status(ib_rec_tbl(i).snm_id, l_return_status, lc_error_text);
END LOOP;
--Commit transactions.
--COMMIT;
END IF;
EXCEPTION
WHEN no_data_found THEN
--fnd_file.put_line(fnd_file.log, 'No records to process');
dbms_output.put_line('No records to process');
WHEN OTHERS THEN
/* fnd_file.put_line(fnd_file.log, 'Error in update_ib procedure');
fnd_file.put_line(fnd_file.log, to_char(SQLCODE) || ' - ' || SQLERRM);
dbms_output.put_line('Error in update_ib procedure');
dbms_output.put_line(to_char(SQLCODE) || ' - ' || SQLERRM);
END; -
pls help on this,
How we can map installed base for Volvo Buses with al components.(like product,text , installed base,individual object)give me brief description on this, with all components in Volvo buses.
pls help me.
with regards
sudheer<b>
An individual hierarchy for an actual device, machine or system.
An IBase can be used to group together all devices of a similar type for each customer.
EXAMPLE
All PCs that were sold to a particular customer.
Real time example :
What will you do if customer does not know the product information ?
1.In the BP Search workspace in the application area, you can use the installed base (IBase) search to search by business partner address for product information.
A customer calls to report a problem with one of the copiers they bought from your company, but does not have the product number. You can enter the company's physical address and the IBase search will find product information about all copiers you have sold this customer that are located at the given address.
Transaction to create the installed base :
IB51 ,IB52 ,IB53 ,IB54 ,IB55 ,IB56 are the transactions for Ibase in CRM.
If the information is helpful , You can appreciate by rewarding</b> -
Oracle Install Base -Unable to find Expire relationship button
Hi Experts,
I am not able to find "Expire Relationship" button under Configuration Tab while trying to expire parent and child relationship in oracle install base for an intem instance.But for some item instance I am able to find the "Expire Relationship" button under Configuration Tab.
Can any one please let me know why the "Expire Relationship" button is available for some item and not available for some item instances.
Thank you.
Ravi SDuplicate post.
Oracle Install Base -Unable to find Expire relationship button
Unable to find Expire relationship button -
Major/Minor Line Relationships in Oracle Service Contracts&Install Base.
Hi,
We have come across a scenario where, based on some business validations, Coverage of a Major Line needs to be TERMINATED.
So, In that case if the Major Line has child lines(Minor) within, then do we need to 'EXPIRE' the 'COMPONENT-OFF' relationship between the Major and its Minor's, which helps in synchronising the data in Service Contracts and the Install Base for that Major Line.
Any inputs would be of great help.
Thanks,
-Santosh.yes, please define major and minor terms here. are you referring to model (major) and component (minor) relationship?
Also if you just remove component-of relationship, you will end up with orphans. is that ok from business perspective?
~Amol
Maybe you are looking for
-
Safari 3 crashing when closing tabs
Hi All, I just did the 10.4.11 update which came with safari 3 and its crashing like crazy. I'm noticing that its crashing every time I attempt to close a tab OR when i attempt to close a browser window ("x"). Here is the crash log: Date/Time: 2007-1
-
Tax calculating checkbox is unselected in MIRO
Hi, In MIRO with reference to PO , we unfortunately missed to tick calcultate tax indicator and posted . Now we want to capture the tax for that documnent. For this please suggest me, how to capture tax for that already posted document through MIRO.
-
How to automatically link a page to the next page in the next spread
Hi everyone, I created a master page in which the two pages are linked( text frame on the page). When I apply the master page to the pages, on every same spread, two paged are linked, but not between spread. How do I automatically link the second pag
-
System Fan (90B) Error / HP Pavilion dv7-4060us
Hi. I have a Pavilion dv7-4060us notebook, Windows 7 Home Premium, 64-bit. I had an overheating problem not too long ago that caused my notebook to shut down on it's own. I bought a cooling pad to help with the overheating, which helped. But now, eve
-
User Group for Authorization Check
I created a user group called SYSTEM and assigned all our companies system accounts to it. Two examples of additional SYSTEM accounts I added to the SYSTEM user group are: DDIC & SAPBATCH. I did not register this group or apply any special conditions