客户、订单知识

http://www.skyz.cn/post/2010-06-02/7321891


1、 什么是“客户”
按系统的结构,一个客户,下面有多个地点。过去一直理解为,客户的名称必须为客户“集团”的名称,各分公司、子公司因当建立为不同的客户地址。其实没有必要这个样子。

一个客户可以理解为是一个对方的业务实体(OU),只要是独立核算的,独立业务往来的都可能 是一个客户。也就是“分公司”、“子公司”都应当建立为独立的客户。

通过设置客户关系(也可以通过系统选项把条件放的更松),可以实现一个子公司订购产品,一个子公司收单付款,再由另一个子公司收货,甚至再继续交付最终使用用户这样多方业务往来的情境。

并且在AR模块中,系统的标准报表,都是统计到客户层的,而非客户地点层。所以将客户理解为大的集团现在我个人 理解并不是很合适,而正确的应当是一个独立的业务实体(子公司)。

2、 常见的地点用途
 首先必不可少的是客户收单方、收货方。

收单方按订单上的字段理解为"Invoice to",也就是收“发票”的单位。收货方字段为“ship to ”,还有一个翻译为最终收获方“deliver to”,按英文的字面理解。在复杂业务情况下,货物一般不直接送到客户公司中,可能是送到码头、车站。那这个码头、车站……就应当是ship to,也就是交货地点,我方要负责送达的地点。(这也是shipping模块中直接看到的),而送到地点后,收货客户就是“deliver to”,也就是货物最后要送达的地方

另外还有一个“标识地址”的功能,一个客户可以有多个地址,但只能将一个地址设置为“标识地址”。这就是这个客户最直接的地址。如果客户是一家公司,那就是公司总部的地址。

3、 如何由订单关联到客户地址、客户名称
 今天做报表时折腾了好久,总算简单的理清了一下,不过还没有仔细考虑各表的用途。

客户地址的关联关系为:oe_order_headers_all -> hz_cust_site_uses_all -> hz_cust_acct_sites_all -> hz_party_sites -> hz_locations

客户名称的关联关系为:oe_order_headers_all -> hz_cust_accounts -> HZ_PARTIES

销售订单到客户收货地址的关联

oe_order_headers_all  ->  hz_cust_site_uses_all  -> hz_cust_acct_sites_all  ->   hz_party_sites  ->  hz_locations  ->  hz_parties

销售订单到客户收货地址的关联

oe_order_headers_all  ->  hz_cust_site_uses_all  -> hz_cust_acct_sites_all  ->   hz_party_sites ->  hz_locations  ->  hz_parties

select ooh.order_number,/*订单号*/hps.party_id,/*客户id*/hp.party_number, /*客户number*/hp.party_name,   /*客户名称*/hps.party_site_id,hps.party_site_number,       hl.location_id,hl.country,hl.address1,hl.address2,hl.address3, hl.address4 from oe_order_headers_all   ooh, hz_cust_site_uses_all  hcsua, hz_cust_acct_sites_all hcasa,  hz_party_sites hps, hz_locations hl, hz_parties hp where ooh.ship_to_org_id = hcsua.site_use_id AND hcsua.cust_acct_site_id = hcasa.cust_acct_site_id AND hcasa.party_site_id = hps.party_site_id

AND hl.location_id = hps.location_id and hps.party_id = hp.party_id and ooh.order_number = '50064'

----收单地址

select ooh.order_number,/*订单号*/ hps.party_id,    /*客户id*/ hp.party_number, /*客户number*/hp.party_name,   /*客户名称*/ hps.party_site_id, hps.party_site_number,  hl.location_id, hl.country, hl.address1, hl.address2, hl.address3, hl.address4  from oe_order_headers_all   ooh, hz_cust_site_uses_all  hcsua, hz_cust_acct_sites_all hcasa,   hz_party_sites hps, hz_locations hl,hz_parties hp where ooh.invoice_to_org_id = hcsua.site_use_id(+) AND hcsua.cust_acct_site_id = hcasa.cust_acct_site_id(+)   AND hcasa.party_site_id = hps.party_site_id(+) AND hl.location_id(+) = hps.location_id and hps.party_id = hp.party_id and ooh.order_number = '50064'

hz_cust_site_uses_all 上面的site_user_code = BILL_TO 代表是收单方,primary_flag等于Y就是主要收单方

EBS R12 客户表结构

http://blog.youkuaiyun.com/jimmylin040/article/details/6839390

 

R12对客户进行了翻天覆地的变化

刚接触客户表结构的时候,可能会感觉非常乱

但整理一凡过后,会感觉倒是有点道理

现发笔记出来,不对的地方希望各位高手指正


客户表/联系人/PARTY关联
   HZ_PARTIES

客户账户表
   HZ_CUST_ACCOUNTS

例子:
[sql] view plaincopy
SELECT hp.party_number                       --客户注册标识  
        , hp.party_name                         --组织名/客户  
        , hp.known_as                           --别名  
        , hp.organization_name_phonetic         --名称拼音  
        , acc.account_number                    --帐号  
        , flv_sale.meaning   sales_channel_code --销售渠道  
        , acc.account_name                      --账记说明  
        , flv_customer.meaning customer_class_code  --分类  
        , acc.orig_system_reference             --参考  
        , flv_status.meaning      status        --状态  
        , flv_type.meaning customer_type        --账户类型  
        , acc.attribute_category                --上下文  
        , acc.attribute1                        --注册  
        , acc.attribute2                        --人员推广  
        , acc.attribute3                        --特殊要求  
        , acc.Attribute4                        --发货单是否打印价格  
        , acc.Attribute5                        --所属利润  
     FROM hz_parties        hp  
        , hz_cust_accounts  acc  
        , fnd_lookup_values flv_sale      --销售渠道  
        , fnd_lookup_values flv_customer  --分类  
        , fnd_lookup_values flv_status    --状态  
        , fnd_lookup_values flv_type      --账户类型  
    WHERE hp.party_id              = acc.party_id  
      AND acc.sales_channel_code   = flv_sale.lookup_code  
      AND flv_sale.lookup_type     = 'SALES_CHANNEL'  
      AND flv_sale.LANGUAGE        = userenv('LANG')  
      AND acc.customer_class_code  = flv_customer.lookup_code  
      AND flv_customer.lookup_type = 'CUSTOMER CLASS'  
      AND flv_customer.LANGUAGE    = userenv('LANG')  
      AND acc.status               = flv_status.lookup_code  
      AND flv_status.lookup_type   = 'HZ_CPUI_REGISTRY_STATUS'  
      AND flv_status.LANGUAGE      = userenv('LANG')  
      AND acc.customer_type        = flv_type.lookup_code  
      AND flv_type.lookup_type     = 'CUSTOMER_TYPE'  
      AND flv_type.LANGUAGE        = userenv('LANG')  
      AND hp.party_id              = hz_parties.party_id; 

帐户配置文件
   HZ_CUSTOMER_PROFILES
   字段
   cust_account_role_id  --oe_order_headers.sold_to_contract_id
   cust_account_id
   site_use_id    --客户头的该字段为空
                  --客户地点层为hz_cust_site_uses_all.site_use_id

配置文件金额
   HZ_CUST_PROFILE_AMTS   --客户头层/客户地点层
   关联:hz_customer_profiles.cust_account_profile_id

客户联系人
   HZ_CUST_ACCOUNT_ROLES    --客户头层/地点层
   cust_account_id
   cust_acct_site_id    --头层该字段为空
   party_id             --类型为 PARTY_RELATIONSHIP 的 PARTY_ID
   role_type            --CONTACT
   以头层的联系人为例

[sql] view plaincopy
SELECT hp_per.*  
     FROM hz_cust_account_roles rol  
        , hz_parties            hp_rel  
        , hz_relationships      rel  
        , hz_parties            hp_per  
    WHERE rol.party_id          = hp_rel.party_id  
      AND hp_rel.party_id       = rel.party_id  
      AND rel.object_type       = 'PERSON'  
      AND rel.relationship_code = 'CONTACT'  
      AND rel.object_id         = hp_per.party_id  
      AND rol.cust_acct_site_id IS NULL              --头层  
      AND rol.cust_account_id   = hz_cust_accounts.cust_account_id; 

联系方式
   HZ_CONTACT_POINTS
   字段
   owner_table_name   HZ_PARTIES/HZ_PARTY_SITES
   owner_table_id     PARTY_ID/PARTY_SITE_ID
   客户地点层的联系方式,直接用party_site_id 关联 owner_table_id 即可
   客户头层的联系方式,要用 HZ_RELATIONSHIPS 表转换一下,与 hz_relationships.party_id 关联
   客户联系人下面的联系方式,要用HZ_CUST_ACCOUNT_ROLES的PARTY_ID关联owner_table_id
   例子:
[sql] view plaincopy
--客户头层  
   SELECT con.*  
     FROM hz_parties        hp  
        , hz_relationships  rel  
        , hz_contact_points con  
     WHERE hp.party_id          = rel.subject_id  
      AND rel.subject_type     = 'ORGANIZATION'  
      AND rel.party_id         = con.owner_table_id  
      AND con.owner_table_name = 'HZ_PARTIES'  
      AND hp.party_id          = hz_parties.party_id;  
   --客户地点层  
   SELECT *  
     FROM hz_contact_points con  
     WHERE con.owner_table_id = hz_party_sites.party_site_id;     
   --客户联系人下的联系方式  
   SELECT *  
     FROM hz_contact_points c  
    WHERE c.owner_table_id = hz_cust_account_roles.party_id 

客户的税
   HZ_CODE_ASSIGNMENTS    会计分类/客户头层/地点层
   字段
   OWNER_TABLE_NAME   关联表名/'ZX_PARTY_TAX_PROFILE'
   OWNER_TABLE_ID     关联表主键/PARTY_TAX_PROFILE_ID
   CLASS_CODE         会计分类代码
   
   ZX_PARTY_TAX_PROFILE   供应商的税的配置文件
   字段
   PARTY_TYPE_CODE         类型   THIRD_PARTY/THIRD_PARTY_SITE
   PARTY_ID                关联表 HZ_PARTIES/HZ_PARTY_SITES
                            头层: PARTY_TYPE_CODE = 'THIRD_PARTY' 
                             AND PARTY_ID = HZ_PARTIES.PARTY_ID
                          地点层: PARTY_TYPE_CODE = 'THIRD_PARTY_SITE'
                             AND PARTY_ID = HZ_PARTY_SITES.PARTY_SITE_ID 
   REP_REGISTRATION_NUMBER 纳税登记编号  
   PARTY_TAX_PROFILE_ID    主键
   HZ_CLASS_CODE_DENORM   会计分类描述
   
   ZX_EXEMPTIONS          客户免税/ 客户头层/地点层
   字段
   PARTY_TAX_PROFILE_ID   关联  ZX_PARTY_TAX_PROFILE.PARTY_TAX_PROFILE_ID

客户地点
   HZ_PARTY_SITES

地点地址
   HZ_LOCATIONS

客户地点帐户表
   HZ_CUST_ACCT_SITES_ALL

客户地点业务目的
   HZ_CUST_SITE_USES_ALL

滞纳费用
   HZ_CUSTOMER_PROFILES

由销售订单分析客户结构

[sql] view plaincopy
SELECT h.sold_from_org_id     --业务实体/ORG ID  
     , h.sold_to_org_id       --客户  
     , h.ship_from_org_id     --发货仓库  
     , h.ship_to_org_id       --收货方  
     , h.invoice_to_org_id  
     , h.sold_to_contact_id  
  FROM oe_order_headers_all h ; 

[sql] view plaincopy
--业务实体  
SELECT org.NAME  
  FROM hr_organization_units org  
WHERE org.organization_id = oe_order_headers_all.sold_from_org_id;  
     
--客户  
SELECT hz.party_name  
  FROM hz_cust_accounts acc  
     , hz_parties       hz  
WHERE acc.party_id = hz.party_id  
   AND acc.cust_account_id = oe_order_headers_all.sold_to_org_id;  
     
--发货仓库  
SELECT para.Organization_Code,para.*  
  FROM mtl_parameters para  
WHERE para.organization_id = oe_order_headers_all.ship_from_org_id;  
SELECT *  
  FROM org_organization_definitions org  
WHERE org.organization_id = oe_order_headers_all.ship_from_org_id;  
  
--地点详细信息  
SELECT loc.*  
  FROM hz_parties     hp  
     , hz_party_sites hps  
     , hz_locations   loc  
WHERE hp.party_id     = hps.party_id  
   AND hps.location_id = loc.location_id  
   AND hp.party_id     = 5042;  
  
--业务目的  
SELECT hp.party_name                 --客户  
     , hp.party_number               --注册表标识  
     , uses.site_use_code  
     , acnt.account_number           --账号  
     , flv.meaning businesspurpose   --业务目的  
     , uses.location                 --地点  
     , acnt.account_name             --帐户说明  
     , decode(loc.address1,NULL,loc.address1,loc.address1 || ',') ||  
       decode(loc.city,NULL,loc.city,loc.city || ',') ||  
       decode(loc.state,NULL,loc.state,loc.state || ',') ||  
       decode(loc.postal_code,NULL,' ',loc.postal_code) address   --地点地址  
     , hps.party_site_number         --地点说明  
     , uses.payment_term_id          --付款条件  
     , site.cust_acct_site_id  
     , acnt.cust_account_id  
     , uses.site_use_id        
  FROM hz_parties             hp  
     , hz_cust_accounts       acnt  
     , hz_cust_acct_sites_all site  
     , hz_cust_site_uses_all  uses  
     , hz_party_sites         hps  
     , hz_locations           loc  
     , fnd_lookup_values      flv  
WHERE hp.party_id            = acnt.party_id  
   AND acnt.cust_account_id   = site.cust_account_id  
   AND site.cust_acct_site_id = uses.cust_acct_site_id  
   AND hps.party_site_id      = site.party_site_id  
   AND loc.location_id        = hps.location_id  
   AND uses.site_use_code     = flv.lookup_code  
   AND flv.lookup_type        = 'SITE_USE_CODE'  
   AND flv.LANGUAGE           = userenv('LANG')  
   AND hp.party_id            = 5042  
   AND hps.party_site_id      = 3023;  
  
--联系人电话/地点层  
SELECT phone.phone_number  
  FROM hz_contact_points phone  
WHERE phone.owner_table_name = 'HZ_PARTY_SITES'  
   AND phone.owner_table_id   = :hz_party_sites.party_sites_id  
           
--联系人/地点层  
SELECT hpsub.party_name  
  FROM hz_cust_account_roles  hcar  
     , hz_relationships       hr  
     , hz_parties             hpsub  
WHERE hcar.party_id             = hr.party_id  
   AND hr.subject_id             = hpsub.party_id  
   AND hcar.role_type            = 'CONTACT'  
   AND hr.directional_flag       = 'F'  
   AND hcar.cust_account_role_id = :oe_order_headers_all.sold_to_contact_id  
   AND hpsub.status              = 'A'; 

ebs r12 客户接口表

http://www.itpub.net/thread-1289694-1-1.html

R12对客户进行了较大修改,因此客户接口表导入也有点小复杂
下面说一下接口导入中的问题
1、接口导入主要用到以下接口表,主要是前三张表
    RA_CUSTOMERS_INTERFACE_ALL
    --客户接口表,导入客户,帐户,地点等信息
    RA_CUSTOMER_PROFILES_INT_ALL
    --客户配置文件接口表,导入客户及地点上的配置文件信息
    RA_CONTACT_PHONES_INT_ALL
    --客户联系人接口表,导入客户联系人及联系方式
    RA_CUSTOMER_BANKS_INT_ALL
    RA_CUST_PAY_METHOD_INT_ALL

2、在录入收单方时,要向PROFILES接口中插入两条纪录
     客户PROFILE中没有orig_system_address_ref
     地点PROFILE要添入orig_system_address_ref

3、如果客户存在两个以上联系人
     则需要向PHONES_INT接口表中插入多条纪录
     其中注意,orig_system_customer_ref与orig_system_address_ref的赋值

4、客户要分两次导入,先导“收单方”再导“收货方”

5、国家为‘US‘,要注意他的地址格式
     AR超级用户->设置->系统->国家(地区)

6、成功导入客户后,如果发现后台数据库可以找数据,而前台查询不到客户时
     可以执行“DQM 分段程序”


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值