技术问询:ARInvoice DAC的CustomerLocationID对应哪个SQL表?
解答ARInvoice中CustomerLocationID对应的SQL表问题
嘿,我来给你理清楚这个事儿:Acumatica里ARInvoice这个DAC虽然有CustomerLocationID字段,但它确实没直接存在于ARInvoice物理表中。这个字段的值其实是靠关联两张表来获取的:
Location表:这是存储所有客户位置信息的核心表,LocationID是它的主键,对应DAC里的CustomerLocation。ARAddress表:这张表是用来把AR单据(比如你的发票)和对应的位置信息绑定起来的关键。你可以通过DocType(比如"INV"代表发票)、RefNbr(发票编号)还有AddressType(比如"Bill"是账单地址、"Ship"是送货地址)这几个字段,精准匹配到目标发票对应的LocationID,这个LocationID就是你要找的CustomerLocationID。
举个例子,你在自定义SQL视图里要筛选出CustomerLocationID等于特定值的发票,可以这么写关联逻辑:
SELECT inv.RefNbr AS InvoiceNumber, loc.LocationID AS CustomerLocationID FROM ARInvoice inv INNER JOIN ARAddress addr ON inv.DocType = addr.DocType AND inv.RefNbr = addr.RefNbr INNER JOIN Location loc ON addr.LocationID = loc.LocationID WHERE loc.LocationID = '你要指定的位置ID值'
要是你的需求是取客户的默认位置,那也可以直接用ARInvoice.CustomerID关联Location.BAccountID,再加个Location.IsDefault = 1的条件就行,但如果是要发票实际使用的那个位置,ARAddress才是正确的关联表哦。
内容的提问来源于stack exchange,提问作者GeorgeM
相关产品推荐
相关产品推荐

