Thursday, February 10, 2011

Configuring product and deals synchronization !


Now, this one is required when you want to refresh the batch pipeline data for each new product and deal created. However, most of this can be found in the BRM official documentation, but the deal synchronization is little tricky and is not specified anywhere.

You need to do some configurations and some customizations for the synchronization to work for you. We will start with the configurations of the processes.

1). Configuring CM(connection manager) for synchronization


Edit the following parameters for synchronization in CM's pin.conf



Parameter Name
Recommended value and Comment
Enable_publish
- fm_publish enable_pulish 1
Em_pointer
- cm em_pointer ip <hostname> <eai_js pointer>
Em_group
- cm em_group publish PCM_OP_ PUBLISH_GEN_PAYLOAD
Log_price_change_event
- fm_price log_price_change_event 1
Dm_pointer(for dm_eai)
- cm dm_pointer 0.0.9.1 ip <hostname> <dm_eai port>
Dm_pointer(for dm_aq)
- cm dm_pointer 0.0.9.7 ip <hostname> <dm_aq port>
Dm_pointer
(for dm_ifw_sync)
- cm dm_pointer 0.0.9.9 ip <hostname> <dm_ifw_sync port>

2). Configuring DM_EAI for synchronization


Edit the following parameters for synchronization in DM_EAI's pin.conf

Parameter Name
Recommended value and Comment
Plugin_name
- dm plugin_name ./plugin_xml${LIBRARYEXTENSION}
Dm_db_no
- dm dm_db_no 0.0.9.1 0
Dm_port
- dm dm_port <port>


3). Configuring EAI_JS for synchronization


Edit the following parameters for synchronization in the Infranet.properties/Infranet_eai.properties of EAI_JS

Parameter Name
Recommended value and Comment
server.portNr(both files)
<port no>
infranet.opcode.handler(both files)
infranet.opcode.handler.PUBLISH_GEN_PAYLOAD=
com.portal.eai.PublishHandler
configFile(infranet.properties file)
infranet.eai.configFile = <xml file>
configFile(infranet_eai.properties file)
infranet.eai.configFile = <xml file>

4). Configuring DM_AQ for synchronization


Edit the following parameters for synchronization in the pin.conf properties file of DM_AQ


Parameter Name
Recommended value and Comment
Plugin_name
- dm plugin_name ./${LIBRARYPREFIX}plugin_aq10g${LIBRARYEXTENSION}
queue_map_file
- dm_aq queue_map_file ./aq_queuenames
Dm_port
- dm dm_port <port>

4). Configuring DM_AQ for synchronization


Edit the following parameters for synchronization in the pin.conf properties file of DM_AQ



Parameter Name
Recommended value and Comment
Plugin_name
- dm plugin_name ./${LIBRARYPREFIX}plugin_aq10g${LIBRARYEXTENSION}
queue_map_file
- dm_aq queue_map_file ./aq_queuenames
Dm_port
- dm dm_port <port>



In addition to editing pin.conf properties file of DM_AQ, you need to edit aq_queuenames. This step is optional and required only for synchronizing deals.

Parameter Name
Recommended value and Comment
Adding business event under AQ_QUEUE
AQ_QUEUE{
   DealCreateorModify
}

Following steps are optional and are required only for synchronizing deals

5). Configuring event notification


  • Edit the pin_notify file and add the following property :

Parameter Name
Recommended value and Comment
Add an entry to the pin_notify latest
1301 0 /event/audit/price/deal

  • Load pin_notify
           load_pin_notify pin_notify


6). Configuring business event (payloadconfig_crm_sync.xml) 



To publish business events for create or modify deal, include below given definitions under <EventDefs> in the payloadconfig_crm_sync.xml configuration file :

<DealCreateorModify Source="/deal" PinFld="PIN_FLD_EVENT_AUDIT" Tag="DealCreateorModify" StartEvent='/event/audit/price/deal">
<Attribute Tag="InstanceId" Value="Portal"/>
<Attribute Tag="xmlns" Value="http://www.portal.com/schemas/CRMSync"/>
<Attribute Tag="xmlns:xsi " Value="http://www.w3.org/2001/XMLSchema-instance"/>
<Attribute Tag="xsi:schemaLocation" Value="http://www.portal.com/schemas/CRMSync/DealCreateorModify.xsd"/>
<Search SearchFld="PIN_FLD_POID" SearchVal="PIN_FLD_OBJECT" SearchValFrom="PIN_FLD_EVENT_AUDIT"/>
<Field PinFld="PIN_FLD_POID" Tag="DealPoid"/>
<Field PinFld="PIN_FLD_NAME " Tag="Name"/>
<Field PinFld="PIN_FLD_DESCR" Tag="Description"/>
<Field PinFld="PIN_FLD_PERMITTED" Tag="ServiceType"/>
<Field PinFld="PIN_FLD_START_T" Tag="DealStartDate"/>
<Field PinFld="PIN_FLD_END_T" Tag="DealEndDate"/>
</DealCreateorModify>





7). Creating XSD for Business event defined above

Create DealCreateorModify.xsd under <PIN_HOME>/sys/eai_js/xsd

<?xml version="1.0"?>
<xs:schema elementFormDefault="qualified" targetNameSpace="http://www.portal.com/schemas/CRMSync"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns="http://www.portal.com/schemas/CRMSync">
            <xs:element name="DealCreateorModify">
               <xs:complexType>
                        <xs:sequence>
                                    <xs:element ref="DealPoid"/>
                                    <xs:element ref="DealName"/>
                                    <xs:element ref="DealDescr"/>
                                    <xs:element ref="ServiceType"/>
                                    <xs:element ref="DealStartDate"/>
                                    <xs:element ref="DealEndDate"/>
                        </xs:sequence>
                        <xs:attribute ref="InstanceId" use="required"/>
               </xs:complexType>
            </xs:element>
            <xs:element name="DealPoid" type="xs:string"/>
            <xs:element name="DealName" type="xs:string"/>
            <xs:element name="DealDescr" type="xs:string"/>
            <xs:element name="ServiceType" type="xs:string"/>
            <xs:element name="DealStartDate" type="xs:string"/>
            <xs:element name=" DealStartDate" type="xs:string"/>
            <xs:attribute name="InstanceId" type="xs:string"/>
</xs:schema>

8). Configuring Oracle AQ - Registering for Notification

     1. Execute PL/SQL block to create an agent "aq_queue_subscriber"
begin
    dbms_aqadm.add_subscriber('AQ_QUEUE',SYS.AQ$AGENT('aq_queue_subscribe,NULL,NULL));
end;
/

   2. If above script fails, then try the PL/SQL block below :
BEGIN
     dbms_aqadm.stop_queue('AQ_QUEUE');
    dbms_aqadm.drop_queue('AQ_QUEUE');
    dbms_aqadm.drop_queue_table('AQ_SYNC');
END;
/

BEGIN
        DBMS_AQADM.CREATE_QUEUE_TABLE(queue_table=>'AQ_SYNC',
                                                                                compatible=>'8.1',
                                                                               storage_clause=>'tablespace pin00 initrans 5 storage(initial 200k next 200k maxextents unlimited pctincrease 0)',
                                                                               queue_payload_type=>'pin_event_ty',
                                                                              sort_list=>'priority,enq_time',
                                                                             multiple_consumers=>'TRUE');
END;
/

BEGIN
                    DBMS_AQADM.CREATE_QUEUE(queue_name=>'AQ_QUEUE',
                                                                              retention_time=>0,
                                                                             retry_delay=>6,
                                                                            queue_table=>'AQ_SYNC');
END;
/


BEGIN
         dbms_aqadm.start_queue('AQ_QUEUE');
END;
/

    3. Skip this step if step 1 was successful, else after completing step 2 successfully execute step 1 to create an agent

   4. Register an URL, which will invoke an http url when a queue gets enqueued. Execute the PL/SQL block below :

Declare
            reginfo                         sys.aq$_reg_info;
            reg_list                                    sys.aq$_reg_info_list;
Begin
            reginfo :=
                                    sys.aq$_reg_info('AQ_QUEUE:aq_queue_subscriber', DBMS_AQ.NAMESPACE_AQ,'http://10.18.19.80:8001/productsync/index', HEXTORAW('FF'));
            reg_list :=
                                    sys.aq$_reg_info_list(reginfo);
                                    DBMS_AQ.REGISTER(reg_list,1);
            commit;
END;
/


9). Restart BRM services


18 comments:

  1. We have sell some products of different custom boxes.it is very useful and very low price please visits this site thanks and please share this post with your friends. Camera BF Deals

    ReplyDelete
  2. I found so many interesting stuff in your blog especially its discussion. From the tons of comments on your articles, I guess I am not the only one having all the enjoyment here! keep up the good work... top 10 reviews

    ReplyDelete
  3. I think that thanks for the valuabe information and insights you have so provided here. Foxbeast

    ReplyDelete
  4. If you are looking for more information about flat rate locksmith Las Vegas check that right away. top dailyguide

    ReplyDelete
  5. Your articles are inventive. I am looking forward to reading the plethora of articles that you have linked here. Thumbs up! bestcheapro

    ReplyDelete
  6. I recently came across your blog and have been reading along. I thought I would leave my first comment. I don’t know what to say except that I have enjoyed reading. product reviews

    ReplyDelete
  7. i read a lot of stuff and i found that the way of writing to clearifing that exactly want to say was very good so i am impressed and ilike to come again in future.. Cannabis Edibles

    ReplyDelete
  8. Positive site, where did u come up with the information on this posting?I have read a few of the articles on your website now, and I really like your style. Thanks a million and please keep up the effective work. https://reeviewlysis.com/

    ReplyDelete
  9. Yes i am totally agreed with this article and i just want say that this article is very nice and very informative article.I will make sure to be reading your blog more. You made a good point but I can't help but wonder, what about the other side? !!!!!!Thanks silicone bibs

    ReplyDelete
  10. Thanks for picking out the time to discuss this, I feel great about it and love studying more on this topic. It is extremely helpful for me. Thanks for such a valuable help again. خصم اي هيرب

    ReplyDelete
  11. Thanks for an interesting blog. What else may I get that sort of info written in such a perfect approach? I have an undertaking that I am just now operating on, and I have been on the lookout for such info. 15mm silicone beads

    ReplyDelete
  12. Positive site, where did u come up with the information on this posting? I'm pleased I discovered it though, ill be checking back soon to find out what additional posts you include. nike running shoe reviews

    ReplyDelete
  13. I think this is an informative post and it is very useful and knowledgeable. therefore, I would like to thank you for the efforts you have made in writing this article. infrared heating panels

    ReplyDelete
  14. I needed to thank you for this phenomenal read!! I unquestionably adored each and every piece of it. I have you bookmarked your site to look at the new stuff you post. kitchen tapware

    ReplyDelete
  15. This is my first time visit here. From the tons of comments on your articles,I guess I am not only one having all the enjoyment right here! weed for sale

    ReplyDelete
  16. I wanted to thank you for this excellent read!! I definitely loved every little bit of it. I have you bookmarked your site to check out the new stuff you post. nonwoven wipes

    ReplyDelete

Migrating PDC data from one system to another

Given System “A” with BRM and PDC and System “B” with BRM and PDC, following is the process for moving new or changed pricing data from ...