zoukankan      html  css  js  c++  java
  • 为行销系统提供EBS表接口

      行销项目开工了,需要从EBS中提取表结构,并实现数据同步。

      同步机制:每次同步时清空行销table的所有数据,然后重新写入。

      日常同步:每周一次,EBS系统负载较小时同步(例如:每天凌晨2点)。

      急需同步:EBS提供功能界面及按钮,点击按钮自动执行同步(少用)。

      可能存在问题:行销系统的数据滞后...

    在提取EBS表结构初,想当然地就直接按文档说明在EBS中狂找对应的字段名称、数据类型...

    类似于:

    代码
    create table ERP_CONTACT
    (
      CONTACT_ID        
    NUMBER(15),
      CUST_ACCT_SITE_ID 
    NUMBER(15not null,
      FIRST_NAME        
    VARCHAR2(150),
      LAST_NAME         
    VARCHAR2(150),
      COUNTRY_CODE      
    VARCHAR2(10),
      AREA_CODE         
    VARCHAR2(10),
      PHONE_NUMBER      
    VARCHAR2(50),
      PHONE_TYPE        
    VARCHAR2(30),
      MAIL_STOP         
    VARCHAR2(60),
      PHONE_STATUS      
    VARCHAR2(30),
      CONTACT_STATUS    
    VARCHAR2(1),
      CREATION_DATE     DATE,
      CREATED_BY        
    NUMBER(15),
      LAST_UPDATE_DATE  DATE,
      LAST_UPDATED_BY   
    NUMBER(15)
    )

    但是之后asheng提醒,这样表结构是搞出来了,但是下一次需要实现同步时候,是不是还是要再整理一遍?

    实在是不想再一次去碰EBS的table,会疯的...

    那么有几件事情要做,首先是找到对应字段的基表(非视图,EBS视图过于庞大),然后找到基表之间的关系,需要注意table的一些必要限制条件。 如:

    create table ERP_CONTACT
    as
    select contact.contact_id,
           addr.cust_acct_site_id,
           contact.first_name,
           contact.last_name,
           phone.country_code,
           phone.area_code,
           phone.phone_number,
           phone.phone_type,
           contact.mail_stop,
           phone.status phone_status
           contact.status contact_status, 
           contact.creation_date,
           contact.created_by,
           contact.last_update_date,
           contact.last_updated_by
      from hz_cust_acct_sites_all addr,
           ar_phones_v phone,
           (select acct_role.cust_account_role_id contact_id,
                   party.person_first_name first_name,
                   party.person_last_name last_name,
                   org_cont.mail_stop,
                   acct_role.status,
                   acct_role.creation_date,
                   acct_role.created_by,
                   acct_role.last_update_date,
                   acct_role.last_updated_by,
                   acct_role.cust_account_id,
                   acct_role.cust_acct_site_id,
                   rel_party.party_id
              from hz_contact_points       cont_point,
                   hz_cust_account_roles   acct_role,
                   hz_parties              party,
                   hz_parties              rel_party,
                   hz_relationships        rel,
                   hz_org_contacts         org_cont,
                   hz_cust_accounts        role_acct,
                   hz_contact_restrictions cont_res,
                   hz_person_language      per_lang
             where acct_role.party_id = rel.party_id
               and acct_role.role_type = 'CONTACT'
               and org_cont.party_relationship_id = rel.relationship_id
               and rel.subject_id = party.party_id
               and rel_party.party_id = rel.party_id
               and cont_point.owner_table_id(+) = rel_party.party_id
               and cont_point.contact_point_type(+) = 'EMAIL'
               and cont_point.primary_flag(+) = 'Y'
               and acct_role.cust_account_id = role_acct.cust_account_id
               and role_acct.party_id = rel.object_id
               and party.party_id = per_lang.party_id(+)
               and per_lang.native_language(+) = 'Y'
               and party.party_id = cont_res.subject_id(+)
               and cont_res.subject_table(+) = 'HZ_PARTIES') contact
     where addr.cust_account_id = contact.cust_account_id(+)
       and addr.cust_acct_site_id = contact.cust_acct_site_id(+)
       and contact.party_id = phone.owner_table_id(+);

    这样做的好处在于,一个是达到建立表结构的目的,数据类型也与EBS同步,另外当需要同步数据时,就只需要执行select语句就取得了所需要的数据。
  • 相关阅读:
    vsftp搭建
    进程管理相关命令(15 个)
    系统管理与性能监视命令 (9 个)
    系统权限及用户授权相关命令(4 个)
    用户管理命令(10个命令)
    深入网络操作命令(9条命令)
    查看系统用户登陆信息的命令(7 个)
    查看文件及内容处理命令(21个命令)
    有关磁盘与文件系统的命令(16个命令)
    linux kernel bisops.h
  • 原文地址:https://www.cnblogs.com/benio/p/1622410.html
Copyright © 2011-2022 走看看