VBAK 销售订单抬头(注意:有各种类型凭证,有合同)
VBAK-VBELN 销售凭证号 VBAK-AUART 销售凭证类型(免费订单、三包订单)
VBAK-KNUMV 单据条件数(查找销售订单项目定价条件直接去konv查即可,S4在PRCD_ELEMENTS里)
abstk 拒绝状态(C全部拒绝)
VKBUR 销售办公室(销售部门)
VABK-KUNNR 售达方 VBAK-ERDAT 创建日期 VBAK-ADRNR 地址编号
VBTYP 销售凭证类别(询价、B报价、订单)(只选销售订单时为 C H I)
KVGR(N) 附加数据(客户组,可自定义配置)
VTWEG 分销渠道 VKORG 销售组织
AUGRU 订单原因 OBJNR 对象(不需要审批的objnr为空)
vdatu 请求的交货日期
objnr 对象号(用于取系统状态和用户状态,可以取表JEST,也可以用函数 STATUS_TEXT_EDIT取)
注:销售凭证类型没有对应文本,只能从域VBTYP中值,使用函数 DD_DOMVALUES_GET
VBUV 销售凭证 : 不完整性日志
PRCD_ELEMENTS(测出来S4有些条件没有,可能是bug,取了A501和KONP)
注:PRCD_ELEMENTS KBETR存表和别的表不一样,如果是日元之类的货币,计算时还需要转入一下
kschl 条件类型
KBETR 率(单价) kpein 条件定价单位 waers 货币
kwert 金额
TVKBT
VKBUR 销售办事处 BEZEI 描述
VBPM - Supplement for Sales Document Items: Technical PM Objects
VEDA 合同数据(对抬头,修改后有行项目)
VBEGDAT 合同开始日期 VENDDAT 合同终止日期
TVKBT 销售部门描述
BEZEI 描述
VBPA 销售凭证 : 合作伙伴
POSNR 取空 PARVW 功能(注意转换例程) KUNNR 送达方 加功能判断
tvak 销售凭证类型
VBTYP 销售和分销凭证类别(为C则为销售订单,为H则为退货订单)
TVAKT 销售订单类型描述
AUART 凭证类型 BEZEI 描述 SPRAS 语言代码
TVGRT 组织单位: 销售组: 文本(可取附加数据客户组文本)
VKGRP 销售组 BEZEI 描述
TVV(N)T 客户组1:描述(销售订单抬头自定义客户组描述)
KVGR(N) 客户组1 BEZEI 描述
TVKOT 销售组织文本
VBAP 销售订单行项目(销项税税码用定价条件取,在BSEG中也有)
VBAP-VBELN 销售凭证号 VBAP-POSNR 项目号
WERKS 工厂 VBAP-MATNR 物料号 ARKTX 描述
LFSTA 交货状态(是否创建交货单)
VBAP-NETPR 净价(不含税) VBAP-NETWR 净价值(净价*数量) WAERK 凭证货币
VBAP-KWMENG 销售单位对应的订单数量 VRKME 销售单位(取这个单位)
KWMENG*UMVKZ/UMVKN 基本计量单位的数量 VBAP-MEINS 基本计量单位
VBAP-ABGRU 拒绝原因
VBAP-PRODH 事业部 MVGR3 物料组3
CUOBJ Configuration
VSTEL 装运点
UPMAT 上层物料号
CMPRE 项目信贷价格(客户单价)(最终单价)
KZWI1 含税金额 小计1(总金额、含税);定价系列字段,分别有1到6;本位币金额在其对应的会计凭证中(取含税金额就在这里取,用netwr + 定价里的税额不一定对)
注:VBAP中有销售订单,也有报价单,根据VBAK销售凭证类别判断
销售订单的定价不同指的是一个物料对不同客户的价格不同,在一张销售订单上,物料的价格是确定的,所以可以直接从KONV中取出不同条件类型的价格
销售订单常用金额字段:金额(KONV中,条件类型价格),客户价格(VBAP中,实际价格),净价(不含税单价),净价值(不含税总价)
VISER02 合同的技术对象 物料和序列号
注:如果修改了设备料号,不会更新合同的历史数据,但va43显示的料号是从主数据带过去的
TVM3T 物料组3描述
VBUK 销售订单(交货单)抬头状态 (s4是空的,直接取单据上的状态)
LFSTK 交货状态(是否创建交货单,交货单关联时是空的)
WBSTK DN过账状态(只有A未过账和C完全过账两种状态)
FKSTK 开票状态
UVFAK 抬头开票状态
VBUP 销售订单项目状态(可以直接inner join vbap)(S4不用了)
VBELN 销售订单号 POSNR 项目号
GBSTA 总处理状态 LFSTA 交货状态(A没有处理 B部分处理 C完全处理)
UVFAK 出具发票状态 注:状态描述取域值
注:如果开票是参考交货单的,还得用交货单关联VBUP才行,也可以用VBAK~VBELN 关联VBRP~AUBEL判断是否开票(可以再加上冲销逻辑)
VBEP 计划行数据
VBELN 销售订单号 POSNR 项目号
ETENR 交货计划行号(如果只取一个交货日期时就取1) EDATU 计划行日期
ETTYP 计划行类别
TVST 装运点
注意创建交货单,时区是从装运点的配置时区带过来的
LIKP 销售凭证交货抬头(物理删除)
LFART 交货类型 WADAT_IST 过账日期(实际发货日期)
lifsk 冻结 spe_loekz 删除
wbstk 过账状态 KOSTK 拣配状态
VSTEL 装运点
LIPS 销售凭证交货行项目
LIPS-VBELN 交货单号 LIPS-POSNR 项目号
LIPS-VGBEL 参考单据的单据编号(销售订单号) LIPS-VGPOS 参考单据的项目编号
WBSTA 发货状态(是否过账) FKSTA 出具发票状态(是否开票)---------这些状态新版本才有,老版本找vbup
LIPS-LFIMG 实际已交货量(按销售单位) VRKME 销售单位
KCMENG 所有分裂项目的累计批数量(以库存单位计)--有批次拆分时LFIMG 为0取KCMENG
BWART 移动类型(过账时会作为物料凭证的移动类型,可以在增强中修改)(如果没批次拆分这个字段就是0)
WERKS 发货工厂 UMWRK 收货工厂
UECHA 上层项目(批次拆分)
附:
1.销售订单已交货数量 (LIPS-VGBEL = VBAP-VBELN AND LIPS-VGPOS = VBAP-POSNR SUM(LIPS~LFIMG))
2.已发货数量 sum(lips~lifmg) where WBSTA = 'C'
3.inner join
inner join ekpo on lips~vgbel = ekpo~ebeln and substring( lips~vgpos,2,5 ) = ekpo~ebelp
tvswz 工厂和装运点的对应关系
VBKD 销售凭证:业务数据(销售订单项目细节、含报价单)
VBKD-VBELN 销售凭证号 VBKD-POSNR 项目号
BSTKD 采购订单编号
VBKD-KURSK 决定价格的汇率(VBAP中没有本位币金额,需要用汇率计算本位币金额)
vsart 装运类型 sdabw 提货方式
注:如果不修改汇率或只在表头修改汇率,则该销售订单只有一条数据,其中POSNR为空,在项目细节上修改汇率时,会增加一条该项目数据(之前的只有销售订单号没有项目号的数据还在,取值时直接取POSNR = SPACE)
LCNUM 信用证号码
条件
a304等,vk13 st05跟一下即可
KONV 条件价格
KONV-KNUMV 单据条件数 KONV-KPOSN 条件项目号(连接VBAP POSNR) KSCHL 条件类型
KBETR 条件类型金额(当配置百分比时,此字段显示的是百分比*1000)(单价)
KWERT 定价值(无论条件类型是百分比还是数值,此字段都显示金额值)(金额)
MWSK1 税码
附:销售凭证定价过程(以万联为例);以下条件类型和定价顺序均可配置
报价 ZPR1(国内报价)、ZPR2(国外报价) 在销售订单项目中显示在“金额”字段
提价 K005
折扣 K007
降价 K004
总计 上述条件类型金额相加;可以从VBAP-CMPRE中取出(不显示在前台项目字段中)
销项税 MWSI
货物价值 NETW(净价值) 显示在前台“净价值”字段(VBAP-NETPR)(前台“净价”字段会显示净单价(VBAP-NETWR))
内部价格 VPRS(成本)
边际利润 净价值减内部价格
V_konv_CDS 没有采购信息记录KONV就没有数据了,从这个视图取(SD也可以)
lifnr 供应商 KBETR 税率(1000倍)、价格
kinak 未激活
KONH 条件记录抬头
KONP 条件项目(事务数据)(销售订单金额)(VK11中的物料销售价格条件记录)(簇表)(销售订单客户价格可以直接取VBAP取CMPRE)
注:WL VK11中维护完物料销售价格后会写入A304中,根据物料号(和其他维护)在A304中选取KNUMV单据条件数,可以读出KBETR价格(此时KSPOSN默认为1),如果用bapi创建,konp可以创建出多条,这是有bug的
VBRK (销售)发票抬头
FKSTO 出具发票凭证被取消(X) SFAKN 冲销凭证号(本张发票冲了别人,被冲销的发票VBELN,参考vgbel是dn,也需要排除)
FKDAT 开票日期(跨月冲销时FKDAT在上月,ERDAT在本月)
NETPR Net Value
KURRF 汇率
注 :以上两种冲销AUBEL都会参考同一张销售订单
RFBSK 过账状态(C已过帐)
注:对应的会计凭证
bkpf-awtyp = 'VBRK'
bkpf-awkey = vbrk-vbeln
bkpf-bukrs = vbrk-bukrs.
VBRP 发票项目
VBELN 开票凭证 POSNR 项目(此字段连接BSEG项目时要去PSONR+2(3),因为字段定义长度不一样)
FKIMG 开票数量(发票数量) VRKME 销售单位 MWSKZ 税码(值是空的)
AUBEL 销售订单号 AUPOS 项目
VGBEL VGPOS 可以是销售订单、交货单,所以取销售订单不能从这里取(如果交货单合并开票了参考凭证是谁)
AUTYP SD 凭证类别(参考凭证类别)
MATNR 物料号 ARKTX 销售订单项目文本 NETWR 净价值 CMPRE 信贷价格
ERDAT 创建日期 LGORT 库存地点(有的是空的,从LIPS取)
netwr 不含税金额 mwsbp 税额
如果定价有两个税额都会写进mwsbp 里,要单独取的话需要用KONV取,参考金税接口
VBFA 销售凭证流
vbeln 发票号 posnn 发票项目号 vbelv 参考凭证号(销售凭证号) posnv 参考凭证项目号
VBTYP_N 凭证类别(C)
TVFK 出具发票: 单据类型:根据发票类型取出凭证类别,判断反向发票
KNA1 客户主文件的一般数据
KNA1-KUNNR 客户号 KNA1-NAME1 名称1
注意: 销售订单中有多种类型,销售退货订单
销售订单未清数量 = 销售订单项数量 - SUM计划行-已交货数量(双击销售订单项目)
修改object DEBI
KNB1 客户公司代码
KNVV 客户销售组织
tvagt 销售凭证拒绝原因描述
tvko 销售组织和公司代码的对应关系
TVKWZ 销售组织和工厂的对应关系
取SO配置的特征值(表ibsymbol不能Left join)(单位在CABN里)
select distinct "不用管上层,取出来结果一样的
vbap~ps_psp_pnr,vbap~vbeln,
ibin~instance,ibin~in_recno
* IBIN_UP~IN_RECNO AS IN_RECNO_UP
into table @data(lt_vbap)
from vbap
left join ibin on vbap~cuobj = ibin~instance
* LEFT JOIN VBAP AS VBAP_UP ON VBAP~VBELN = VBAP_UP~VBELN AND VBAP~UPMAT = VBAP_UP~MATNR "上一层
* LEFT JOIN IBIN AS IBIN_UP ON VBAP_UP~CUOBJ = IBIN_UP~INSTANCE
for all entries in @gt_alv
where vbap~ps_psp_pnr = @gt_alv-pspel and vbap~ps_psp_pnr ne '00000000'.
select
ibinvalues~in_recno,ibinvalues~symbol_id,
ibsymbol~atinn,ibsymbol~atwrt,ibsymbol~atflv
* IBSYMBOL_WFROM~SYMBOL_ID AS SYMBOL_ID_WFROM ,IBSYMBOL_WFROM~ATWRT AS SO_WFROM
into table @data(lt_ibinvalues)
from ibinvalues
inner join ibsymbol on ibinvalues~symbol_id = ibsymbol~symbol_id
* AND IBSYMBOL_WARRANTY~ATINN = '0000007440' "WARRANTY
* LEFT JOIN IBSYMBOL AS IBSYMBOL_WFROM ON IBINVALUES~SYMBOL_ID = IBSYMBOL_WFROM~SYMBOL_ID AND IBSYMBOL_WFROM~ATINN = '0000007439' "WARRANTY VALID FROM
for all entries in @lt_vbap
where ( ibinvalues~in_recno = @lt_vbap-in_recno
* OR IBINVALUES~IN_RECNO = @LT_VBAP-IN_RECNO_UP
)
and ibsymbol~atinn in ('0000007440','0000007439') "WARRANTY 和 WARRANTY VALID FROM
.