SAP:根据销售类型加入合作伙伴功能数据



使用SAP数据,我们愿意与最后一位客户一起丰富销售数据。根据销售类型,有不同的合作伙伴功能代码,对应于执行销售的最后一家公司(例如:我们可能有间接或直接销售(。目前,我们一直在考虑表VBAP/VBAK/VBPA。我们使用sap4j将每个表中的数据提取到单独的文件中,然后在VBELN上加入VBAP和VBPA,并考虑合作伙伴代码We(货物收件人(或表示最后一个发货买家的自定义发货代码。

有没有什么准确的方法可以知道谁是特定销售链中的最后一个买家?

可以通过以下方式完成:

def sales_tabkey(row):
return "001{}{}".format(row['VBELN'], row['POSNR'])
def expected_partner_function_for_sales_type(row):
consignation_codes = set(['ORK', 'XKB', 'ZSOK', 'ZLZK', 'ZTSK', 'KE', 'ZED', 'ZZN'])
if row['AUART'] in consignation_codes:
return 'ZK'
return 'WE'
def get_kunnrf_frame(vbap, vbak, vbpa, kna):
consignation_codes = set(['ORK', 'XKB', 'ZSOK', 'ZLZK', 'ZTSK', 'KE', 'ZED', 'ZZN'])
df = pd.merge(vbap, vbak, on=['VBELN'], how='left')
df = pd.merge(df, vbpa, on='VBELN', how='left')
df["EXPPARVW"]=df.apply(expected_partner_function_for_sales_type, axis=1)
# KUNNR in kna is considered end_client_id
df = pd.merge(df, kna, on='ADRNR', how='left')[['VBELN','POSNR', 'KUNNR','end_client_id', 'ADRNR', 'PARVW', 'EXPPARVW', 'AUART']].drop_duplicates()
df['TABKEY']=df.apply(sales_tabkey,axis=1)
endclient_tabkeys = set(df.TABKEY.unique())
dfa = df[df.PARVW==df['EXPPARVW']]
dfb = df[df.TABKEY.isin(endclient_tabkeys.difference(set(dfa.TABKEY.unique())))]
return pd.concat([dfa, dfb])

最新更新