跳转至

LN Public Interfaces 速查

Public Interfaces (PI) 是 LN 提供的标准业务功能方法,可在 Extension 中调用实现标准功能复用,升级不受影响。本手册基于 Infor LN 10.8 PI Reference Guide(2026 年 3 月版)整理。

前置阅读LN 4GL 语言基础 | LN Extension 开发实战


📋 目录


一、PI 调用基础

1.1 调用流程

1. 在 declaration 段声明 extern 函数原型
2. 在函数/section 中调用 PI 函数
3. 检查返回值(0=成功)
4. 成功:Exception.Delete(exception.id)
   失败:Exception.GetMessage() + 处理异常

1.2 参数规则

参数类型 说明 示例
固定输入 必须按顺序传递 domain tccmp iFinancialCompany
固定输出 ref 引用传递 ref domain tcamnt oTargetAmount
可变输入 "字段名", 成对 "cadr", l.tccom114.cadr`
可变输出 "字段名", 变量 成对 "ccnt", l.tccom114.ccnt`

1.3 mb 后缀说明

mb 后缀(如 domain tcmcs.s999m oMsg mb)表示该字符串参数允许返回多字节字符(中文、日文等)。

1.4 标准调用模板

declaration:
    extern long SomeModule.SomeFunction(
        domain tccmp iComp,
        domain tcorno iOrder,
        ref domain tcamnt oAmount,
        ref domain tcmcs.s999m oExceptionMessage mb,
        ref long oExceptionID )

| 调用
long ret
domain tcmcs.s999m oMsg mb
long oID

ret = SomeModule.SomeFunction(575, order.no, amount, oMsg, oID)
if ret = 0 then
    Exception.Delete(exception.id)
else
    Exception.GetMessage(oID, 1, oMsg)
    message("错误: " & oMsg)
    raise error
endif

二、异常处理模块

函数 说明 DLL
Exception.Delete(id) 删除异常记录
Exception.GetMessage(id, seq, msg) 获取异常消息(seq 从 1 开始)
Exception.NumberOfMessages(id) 获取异常消息数量

三、Common 通用模块

DLLtcextcomapi

金额与数量转换

函数 说明 返回值
Common.ConvertAmount(comp, amt, from.cur, rate.type, rate.date, to.cur, ref amt.out, ref msg, ref id) 货币金额转换 0=成功
Common.ConvertQuantity(comp, qty, from.unit, item, to.unit, ref qty.out, ref msg, ref id) 数量单位转换 0=成功
Common.ConvertPrice(comp, price, from.cur, from.unit, to.cur, to.unit, item, ref price.out, ref msg, ref id) 价格转换(含币种和单位) 0=成功
Common.ConvertAmountToWords(comp, amt, cur, ref words, ref msg, ref id) 金额转文字(如"壹佰贰拾叁元整") 0=成功
Common.ConvertTime(from.unit, qty, to.unit, ref qty.out, ref msg, ref id) 时间单位转换 0=成功
Common.ConvertISODurationToSeconds(duration, ref seconds, ref msg, ref id) ISO 8601 工期转秒数 0=成功
Common.ConvertLeadTimeToISODuration(comp, item, days, ref duration, ref msg, ref id) 提前期天数转 ISO 工期 0=成功

金额计算

函数 说明 返回值
Common.RoundAmount(comp, amt, cur, ref rounded, ref msg, ref id) 金额四舍五入 0=成功
Common.RoundQuantity(comp, qty, unit, item, ref rounded, ref msg, ref id) 数量四舍五入 0=成功
Common.CalculateDiscountAmounts(comp, amt, disc.pct, cur, ref disc.amt, ref net.amt, ref msg, ref id) 计算折扣金额 0=成功
Common.CalculateDueDates(comp, inv.date, terms, ref due.date, ref disc.date, ref msg, ref id) 计算到期日和折扣日 0=成功

编号与参数

函数 说明 返回值
Common.GenerateFirstFreeNumber(comp, series, ref number, ref msg, ref id) 生成首个自由编号 0=成功
Common.ValidateNumberGroupSeries(comp, group, ref msg, ref id) 校验编号组 0=成功
Common.GetParameters(comp, param, ref value, ref msg, ref id) 获取系统参数 0=成功
Common.GetAdditionalEntityInfo(comp, ref msg, ref id, ...) 获取附加实体信息 0=成功
Common.GetFinancialCompanyOfEntity(entity, ref comp, ref msg, ref id) 获取实体所属财务公司 0=成功
Common.GetCurrencyRates(comp, cur, rate.type, date, ref buy.rate, ref sell.rate, ref msg, ref id) 获取汇率 0=成功
Common.GetConversionFactor(comp, item, from.unit, to.unit, date, ref factor, ref msg, ref id) 获取转换系数 0=成功
Common.GetFormattedAddress(...) 获取格式化地址字符串 0=成功
Common.GetISOCodeOfLNLanguage(lang, ref iso.code, ref msg, ref id) 获取 LN 语言的 ISO 代码 0=成功
Common.UpdateApprovedConversionFactor(comp, item, from.unit, to.unit, factor, ref msg, ref id) 更新已审批的转换系数 0=成功

地址与联系

函数 说明 返回值
Address.Create(comp, bpid, role, ref msg, ref id, ...) 创建地址 0=成功
Address.StartDetail(comp, bpid, role, ...) 启动地址明细 Session
Address.StartPrintByBusinessPartner(comp, bpid, ...) 打印业务伙伴地址
Contact.StartOverview(comp, bpid, ...) 启动联系人概览 Session
Warehouse.StartOverview(...) 启动仓库概览 Session

打印

函数 说明
Printing.CloseOpenReports() 关闭所有打开的报表

四、BusinessPartner 业务伙伴模块

DLLtcextcomapi

数据获取

函数 说明
BusinessPartner.GetGeneralData(comp, bpid, dept, force, ref msg, ref id, ...) 获取通用数据
BusinessPartner.GetBuyFromData(comp, bpid, dept, force, ref msg, ref id, ...) 获取采购方数据
BusinessPartner.GetSoldToData(comp, bpid, dept, force, ref msg, ref id, ...) 获取收货方数据
BusinessPartner.GetShipToData(comp, bpid, dept, force, ref msg, ref id, ...) 获取送达方数据
BusinessPartner.GetShipFromData(comp, bpid, dept, force, ref msg, ref id, ...) 获取发货方数据
BusinessPartner.GetPayByData(comp, bpid, dept, force, ref msg, ref id, ...) 获取付款方数据
BusinessPartner.GetPayToData(comp, bpid, dept, force, ref msg, ref id, ...) 获取收款方数据
BusinessPartner.GetInvoiceToData(comp, bpid, dept, force, ref msg, ref id, ...) 获取收票方数据
BusinessPartner.GetInvoiceFromData(comp, bpid, dept, force, ref msg, ref id, ...) 获取开票方数据
BusinessPartner.GetCreditLimitAndBalances(comp, bpid, dept, force, ref msg, ref id, ...) 获取信用额度和余额
BusinessPartner.CheckOverdueInvoices(comp, bpid, ref msg, ref id) 检查逾期发票

Session 启动

函数 说明
BusinessPartner.StartOverview(...) 启动业务伙伴概览
BusinessPartner.StartEasyEntry(...) 启动简易录入
BusinessPartner.StartMultiMain(...) 启动多主数据
BusinessPartner.StartDetail(...) 启动业务伙伴明细
BuyFromBusinessPartner.StartOverview(...) 启动采购方概览
InvoiceToBusinessPartner.StartDetail(...) 启动收票方明细

其他

函数 说明
HoldReasons.StartOverview(...) 启动暂停原因概览
BillingCycle.GetInvoicedate(comp, bpcyc, ref date, ref msg, ref id) 获取开票日期
Series.StartOverview(...) 启动系列概览
Task.StartMultiMain(...) 启动任务多主数据
Activities.StartOverview(...) 启动活动概览

五、Item 物料模块

DLLtcextibdapi

数据获取

函数 说明
Item.GetData(comp, item, force, ref msg, ref id, ...) 获取物料通用数据
Item.GetSalesData(comp, item, office, force, ref msg, ref id, ...) 获取销售视图数据
Item.GetPurchaseData(comp, item, office, force, ref msg, ref id, ...) 获取采购视图数据
Item.GetCostingData(comp, item, force, ref msg, ref id, ...) 获取成本视图数据
Item.GetProductionData(comp, item, site, force, ref msg, ref id, ...) 获取生产视图数据
Item.GetWarehousingData(comp, item, site, force, ref msg, ref id, ...) 获取仓储视图数据
Item.GetServiceData(comp, item, force, ref msg, ref id, ...) 获取服务视图数据
Item.GetOrderingData(comp, item, site, force, ref msg, ref id, ...) 获取订购数据
Item.GetSupplier(comp, item, ref msg, ref id, ...) 获取供应商信息
Item.GetRevision(comp, item, ref msg, ref id, ...) 获取物料版本
Item.GetLotSerialRegistration(comp, item, ref msg, ref id, ...) 获取批号/序列号注册信息
Item.GetPlanningTimeFenceDate(comp, item, site, ref date, ref msg, ref id) 获取计划时界日期
Item.ProjectPegAllowed(comp, item, ref allowed, ref msg, ref id) 检查是否允许项目挂钩

物料操作

函数 说明
Item.Copy(comp, from.item, to.item, ref msg, ref id) 复制物料
Item.CopySiteData(comp, item, from.site, to.site, ref msg, ref id) 复制站点数据
Item.CreateSerialNumber(comp, item, ...) 创建序列号
Item.InsertSerialNumber(comp, item, serial, ...) 插入序列号
Item.ConvertItemToPlanItem(comp, item, ref plan.item, ref msg, ref id) 物料转计划物料
Item.ConvertPlanItemToItem(comp, plan.item, ref item, ref msg, ref id) 计划物料转物料

Session 启动

函数 说明
Item.StartDetail(comp, item) 启动物料明细
Item.StartCopy(comp, item) 启动物料复制
Item.StartMultiMain(...) 启动物料多主数据
Item.StartOverview(...) 启动物料概览
Item.StartWhereUsedComponent(comp, item) 启动物料用途查询
ItemBySite.StartDetail(...) 启动站点物料明细
ItemBySite.StartOverview(...) 启动站点物料概览
ItemPurchase.StartDetail(...) 启动采购物料明细
ItemPurchase.StartOverview(...) 启动采购物料概览
ItemPurchaseBySite.StartDetail(...) 启动站点采购物料明细
ItemPurchaseBusinessPartner.StartDetail(...) 启动物料供应商明细
ItemPurchaseBusinessPartner.StartOverview(...) 启动物料供应商概览
ItemPurchaseBusinessPartner.CalculateLeadTimes(...) 计算供应商提前期
ItemPurchaseBusinessPartner.GetSafetyTime(...) 获取安全时间
ItemSalesBusinessPartner.StartDetail(...) 启动销售物料明细
ItemSalesBusinessPartner.StartOverview(...) 启动销售物料概览
ItemSalesByOffice.StartOverview(...) 启动办公室销售物料概览
ItemPlanning.StartDetail(...) 启动计划物料明细
ItemPlanning.StartOverview(...) 启动计划物料概览
ItemSerial.CreateOrUpdate(...) 创建或更新序列号
ItemSerial.SetStatus(...) 设置序列号状态
LotAndSerialSet.StartOverview(...) 启动批号/序列号集概览
ItemsByManufacturerPartNumber.StartOverview(...) 启动制造商零件号概览
ItemByItemCodeSystem.StartOverview(...) 启动物料编码系统概览

六、Sales 销售模块

DLLtdextslsapi

销售设置

函数 说明
Sales.GetOrderSettings(comp, office, ref msg, ref id, ...) 获取销售订单设置
Sales.GetGeneralSettings(comp, ref msg, ref id, ...) 获取通用销售设置
Sales.GetQuoteSettings(comp, office, ref msg, ref id, ...) 获取报价设置
Sales.GetContractSettings(comp, office, ref msg, ref id, ...) 获取合同设置
Sales.GetScheduleSettings(comp, ref msg, ref id, ...) 获取计划设置
Sales.CalculatePlannedDeliveryDate(comp, item, qty, date, office, ref del.date, ref msg, ref id) 计算计划交货日期
Sales.GenerateRetrobilledPriceChangeAdvices(...) 生成追溯性价格变更通知
Sales.StartProcessProFormaInvoices(...) 启动形式发票处理

销售报价

函数 说明
SalesQuote.Approve(comp, quno, ref msg, ref id) 审批报价
SalesQuote.Process(comp, quno, ref msg, ref id) 处理报价(转为订单)
SalesQuote.StartMultiMain(...) 启动报价多主数据
SalesQuotes.StartOverview(...) 启动报价概览
SalesQuoteLine.RecalculatePriceAndDiscounts(...) 重新计算价格和折扣
SalesQuoteLine.StartDetail(...) 启动报价行明细

销售合同

函数 说明
SalesContract.GetTotalAmounts(comp, ccon, ref msg, ref id, ...) 获取合同总金额
SalesContract.StartMultiMain(...) 启动合同多主数据
SalesContract.StartWorkbench(...) 启动合同工作台
SalesContracts.StartOverview(...) 启动合同概览

销售计划

函数 说明
SalesSchedule.GetForecastQuantity(...) 获取预测数量
SalesSchedule.StartMultiMain(...) 启动销售计划多主数据
SalesScheduleLine.Reprice(...) 重新定价
SalesScheduleLine.RecalculatePriceAndDiscounts(...) 重新计算价格和折扣

销售订单

函数 说明
SalesOrder.Approve(comp, orno, ref msg, ref id) 审批销售订单
SalesOrder.Block(comp, orno, hold, ref msg, ref id) 阻塞/解阻销售订单
SalesOrder.CalculateAmounts(comp, orno, ref msg, ref id) 计算订单金额
SalesOrder.CopyBOM(comp, from.order, to.order, ref msg, ref id) 复制 BOM
SalesOrder.CreditCheck(comp, orno, ref msg, ref id) 信用检查
SalesOrder.DetermineAdditionalCostLines(...) 确定附加费用行
SalesOrder.DetermineDefaultPurchaseOrderData(...) 确定默认采购订单数据
SalesOrder.FinalizeBlocking(comp, orno, ref msg, ref id) 完成阻塞
SalesOrder.GenerateStructure(...) 生成订单结构
SalesOrder.InitiateChangeRequest(comp, orno, ref msg, ref id) 发起变更请求
SalesOrder.RecalculatePriceAndDiscounts(comp, orno, ref msg, ref id) 重新计算价格和折扣
SalesOrder.ReleaseBlocking(comp, orno, ref msg, ref id) 释放阻塞
SalesOrder.Rush(comp, orno, ref msg, ref id) 加急订单
SalesOrder.StartIntakeWorkbench(...) 启动录入工作台
SalesOrder.StartMultiMain(...) 启动订单多主数据
SalesOrder.StartPrintAcknowledgement(...) 打印订单确认
SalesOrders.StartOverview(...) 启动订单概览

销售订单行

函数 说明
SalesOrderLine.Block(comp, orno, ponr, hold, ref msg, ref id) 阻塞/解阻订单行
SalesOrderLine.CalculateCostPriceByProject(...) 按项目计算成本价格
SalesOrderLine.Cancel(comp, orno, ponr, ref msg, ref id) 取消订单行
SalesOrderLine.ConfirmBackorderLine(...) 确认欠交行
SalesOrderLine.ConfirmSalesDelivery(...) 确认销售交货
SalesOrderLine.CopyFromOriginalInvoice(...) 从原发票复制
SalesOrderLine.CopyFromOriginalOrder(...) 从原订单复制
SalesOrderLine.CopyFromOriginalScheduleShipment(...) 从原计划装运复制
SalesOrderLine.CopyFromOriginalShipment(...) 从原装运复制
SalesOrderLine.CreateSalesDelivery(...) 创建销售交货
SalesOrderLine.ExecuteTradeComplianceCheck(...) 执行贸易合规检查
SalesOrderLine.GenerateProductionOrder(...) 生成生产订单
SalesOrderLine.GetStatusDescription(...) 获取状态描述
SalesOrderLine.LinkContract(...) 关联合同
SalesOrderLine.LinkOrUnlinkInstallationGroup(...) 关联/取消安装组
SalesOrderLine.RecalculatePriceAndDiscounts(...) 重新计算价格和折扣
SalesOrderLine.ReleaseBlocking(...) 释放阻塞
SalesOrderLine.ReleaseManualActivity(...) 释放手工活动
SalesOrderLine.ReleaseToWarehousing(...) 释放到仓储
SalesOrderLine.Split(...) 拆分订单行
SalesOrderLine.StartAutomaticProcessing(...) 启动自动处理
SalesOrderLine.StartDetail(...) 启动订单行明细

销售订单变更请求

函数 说明
SalesOrderChangeRequest.Approve(...) 审批变更请求
SalesOrderChangeRequest.Cancel(...) 取消变更请求
SalesOrderChangeRequest.Process(...) 处理变更请求

销售发票行

函数 说明
SalesOrderInvoiceLine.ChangePriceAndDiscounts(...) 变更价格和折扣
SalesOrderInvoiceLine.ReadInvoicingStatusDescription(...) 读取开票状态
SalesOrderInvoiceLine.ReleaseToInvoicing(...) 释放到开票

七、Purchase 采购模块

DLLtdextpurapi

采购设置

函数 说明
Purchase.GetOrderSettings(comp, office, ref msg, ref id, ...) 获取采购订单设置
Purchase.GetGeneralSettings(comp, ref msg, ref id, ...) 获取通用采购设置
Purchase.GetRequisitionSettings(comp, ref msg, ref id, ...) 获取采购申请设置
Purchase.GetRFQSettings(comp, ref msg, ref id, ...) 获取询价设置
Purchase.GetContractSettings(comp, office, ref msg, ref id, ...) 获取采购合同设置
Purchase.GetScheduleSettings(comp, ref msg, ref id, ...) 获取采购计划设置
Purchase.GenerateRetrobilledPriceChangeAdvices(...) 生成追溯性价格变更通知

采购申请

函数 说明
PurchaseRequisition.Submit(comp, ref msg, ref id) 提交采购申请
PurchaseRequisition.ApproveApprovalRecord(...) 审批
PurchaseRequisition.RejectApprovalRecord(...) 驳回
PurchaseRequisition.StartMultiMain(...) 启动多主数据
PurchaseRequisitionLine.ConvertToPurchaseOrder(...) 转采购订单
PurchaseRequisitionLine.ConvertToPurchaseRFQ(...) 转询价单
PurchaseRequisitionLine.StartDetail(...) 启动申请行明细

采购合同

函数 说明
PurchaseContract.Activate(...) 激活合同
PurchaseContract.Deactivate(...) 停用合同
PurchaseContract.Terminate(...) 终止合同
PurchaseContract.GetTotalAmounts(...) 获取合同总金额
PurchaseContract.StartWorkbench(...) 启动合同工作台
PurchaseContractLine.Activate(...) 激活合同行
PurchaseContractLine.Deactivate(...) 停用合同行
PurchaseContractLine.Terminate(...) 终止合同行
PurchaseContractLine.GetNetAmountOnPriceDate(...) 获取价格日期的净额

采购询价

函数 说明
RequestForQuote.PrintRequestForQuote(...) 打印询价单
RequestForQuote.StartCancel(...) 启动取消
RequestForQuoteResponse.Accept(...) 接受报价
RequestForQuoteResponse.Reject(...) 拒绝报价

采购订单

函数 说明
PurchaseOrder.InitiateChangeRequest(...) 发起变更请求
PurchaseOrder.PrintPurchaseOrder(...) 打印采购订单
PurchaseOrder.RecalculateLandedCosts(...) 重新计算到岸成本
PurchaseOrder.StartAutomaticProcessing(...) 启动自动处理
PurchaseOrder.StartIntakeWorkbench(...) 启动录入工作台
PurchaseOrder.StartMultiMain(...) 启动多主数据
PurchaseOrder.StartPrintReminders(...) 打印催单
PurchaseOrders.StartOverview(...) 启动订单概览
PurchaseOrderLine.Approve(...) 审批订单行
PurchaseOrderLine.CalculatePlannedReceiptDate(...) 计算计划收货日期
PurchaseOrderLine.Cancel(...) 取消订单行
PurchaseOrderLine.ConfirmPotentialBackorder(...) 确认潜在欠交
PurchaseOrderLine.GetCurrentActivity(...) 获取当前活动
PurchaseOrderLine.ReleaseToWarehousing(...) 释放到仓储
PurchaseOrderLine.Split(...) 拆分订单行
PurchaseOrderLines.StartOverview(...) 启动订单行概览
PurchaseOrderReceipt.Confirm(...) 确认收货
PurchaseOrderReceipt.ConfirmV2(...) 确认收货(V2)
PurchaseOrderReceipt.StartDetail(...) 启动收货明细
PurchasePayableReceipt.ChangePriceAndDiscountAfterReceipt(...) 收货后变更价格和折扣

采购计划

函数 说明
PurchaseSchedule.GenerateReleaseForPushAndPullForecast(...) 生成推拉预测发布
PurchaseSchedule.Regenerate(...) 重新生成
PurchaseSchedule.StartMultiMain(...) 启动多主数据
PurchaseSchedule.Terminate(...) 终止

八、Pricing 定价模块

DLLtdextprcap

函数 说明
Pricing.CalculateAmounts(...) 计算定价金额
Pricing.GetGeneralSettings(...) 获取通用定价设置
Pricing.GetPurchaseSettings(...) 获取采购定价设置
Pricing.GetSalesSettings(...) 获取销售定价设置
Pricing.GetServiceSettings(...) 获取服务定价设置
Pricing.RetrievePriceBookDataForItem(...) 获取物料价格本数据
Pricing.SimulatePurchasePrice(...) 模拟采购价格
Pricing.SimulateSalesPrice(...) 模拟销售价格
Pricing.SimulateServicePrice(...) 模拟服务价格
Pricing.SimulateTransferPrice(...) 模拟转移价格

九、Planning 计划模块

函数 说明
PlanItem.StartATPHandling(...) 启动 ATP(可承诺量)处理
ItemMasterPlan.Generate(...) 生成物料主计划
ItemMasterPlan.StartPlan(...) 启动主计划
ItemMasterPlan.Update(...) 更新主计划
ItemOrderPlan.Get(...) 获取订单计划
ItemOrderPlan.StartPlan(...) 启动订单计划
ItemOrderPlan.StartPlanForProject(...) 启动项目订单计划
ItemOrderPlan.StartPlanForProjectPeg(...) 启动项目挂钩计划
PlannedOrder.Replan(...) 重计划
PlannedOrder.StartMultiMain(...) 启动多主数据
PlannedOrders.StartGenerate(...) 启动计划订单生成
PlannedOrders.StartOverview(...) 启动计划订单概览
PlannedOrders.TransferOrderSet(...) 转移订单集
PlannedProductionOrder.Transfer(...) 转移计划生产订单
PlannedPurchaseOrder.Transfer(...) 转移计划采购订单
PlannedPeggingRelations.FindDemandForOrder(...) 查找订单需求
PlannedPeggingRelations.FindSupplyForOrder(...) 查找订单供应
ProductAvailability.GetWhenAvailableSchedule(...) 获取可承诺量计划
OrderPegging.StartSelect(...) 启动挂钩选择

十、Standard Costs 标准成本模块

函数 说明
StandardCosts.Calculate(...) 计算标准成本
StandardCosts.CalculateAndGetStandardCost(...) 计算并获取标准成本
StandardCosts.CalculateForNewItem(...) 为新物料计算标准成本
StandardCosts.CalculateForSimulation(...) 模拟计算标准成本
StandardCosts.CalculateSingleItem(...) 计算单个物料标准成本
StandardCosts.Actualize(...) 实际化标准成本
StandardCosts.PrintMultilevelCostCalculation(...) 打印多级成本计算

十一、Manufacturing 制造模块

BOM 与工艺路线

函数 说明
ProductionBillOfMaterial.ApproveRevision(...) 审批生产 BOM 版本
ProductionBillOfMaterial.CopyToJobShop(...) 复制到车间
ProductionBillOfMaterial.ExpireRevision(...) 过期生产 BOM 版本
ProductionBillOfMaterial.GenerateProductSubcontractingModel(...) 生成产品外协模型
ProductionBillOfMaterial.StartMultiMain(...) 启动多主数据
ProductionBillOfMaterial.ValidateRevision(...) 验证 BOM 版本
JobShopBillOfMaterial.ApproveRevision(...) 审批车间 BOM 版本
JobShopBillOfMaterial.Copy(...) 复制
JobShopBillOfMaterial.CreateNewRevision(...) 创建新版本
JobShopBillOfMaterial.ExpireRevision(...) 过期版本
JobShopBillOfMaterial.Explode(...) 展开 BOM
JobShopRouting.ApproveRevision(...) 审批工艺路线版本
JobShopRouting.Copy(...) 复制
JobShopRouting.CopyOperations(...) 复制工序
JobShopRouting.CreateNewRevision(...) 创建新版本
JobShopRouting.ExpireRevision(...) 过期版本
JobShopRouting.SetUseForCosting(...) 设为成本计算用
JobShopRouting.SetUseForPlanning(...) 设为计划用
ProductVariant.GenerateStructure(...) 生成产品结构
ProductVariant.StartConfigurator(...) 启动配置器

十二、Calendar 日历模块

函数 说明
Calendar.CalculateDaysFromHours(comp, calendar, hours, ref days, ref msg, ref id) 工时转天数
Calendar.GetPeriodCapacity(comp, cal.code, period, ref capacity, ref msg, ref id) 获取期间产能
Calendar.GetWorkingDays(comp, from.date, to.date, ref days, ref msg, ref id) 获取工作日数
Calendar.PlanLeadTimeBackward(comp, item, date, ref start.date, ref msg, ref id) 反向排程
Calendar.PlanLeadTimeForward(comp, item, date, ref end.date, ref msg, ref id) 正向排程
Calendar.StartUpdateWorkingHours(...) 启动更新工作时间
Calendar.UpdateWorkingHours(...) 更新工作时间

十三、Warehouse 仓储模块

函数 说明
Warehouse.StartOverview(...) 启动仓库概览
ProductionWarehouseOrders.StartDetail(...) 启动生产仓库订单明细

十四、完整调用示例

14.1 销售订单审批

declaration:
    extern long SalesOrder.Approve(
        domain tccmp iFinancialCompany,
        domain tcorno iOrder,
        ref domain tcmcs.s999m oExceptionMessage mb,
        ref long oExceptionID )

function long approve_sales_order(domain tcorno i.order)
{
    long ret
    domain tcmcs.s999m oMsg mb
    long oID

    ret = SalesOrder.Approve(575, i.order, oMsg, oID)
    if ret = 0 then
        Exception.Delete(exception.id)
        message("订单 %s 审批成功", i.order)
    else
        Exception.GetMessage(oID, 1, oMsg)
        message("审批失败: " & oMsg)
        raise error
    endif

    return(ret)
}

14.2 获取业务伙伴付款方数据

declaration:
    extern long BusinessPartner.GetPayByData(
        domain tccmp iFinancialCompany,
        domain tccom.bpid iPayByBP,
        domain tccwoc iDepartment,
        boolean iForceRead,
        ref domain tcmcs.s999m oExceptionMessage mb,
        ref long oExceptionID )

function long get_pay_by_data()
{
    long ret
    domain tcmcs.s999m oMsg mb
    long oID

    ret = BusinessPartner.GetPayByData(
        575,                       | 财务公司
        "BP000001",                | 业务伙伴
        "",                        | 部门
        true,                      | 强制读取
        oMsg, oID )

    if ret = 0 then
        Exception.Delete(exception.id)
        | 数据已加载到 tccom114 表缓冲区
        message("地址: %s", tccom114.cadr)
    else
        Exception.GetMessage(oID, 1, oMsg)
        message("获取失败: " & oMsg)
    endif

    return(ret)
}

14.3 采购订单行释放到仓储

declaration:
    extern long PurchaseOrderLine.ReleaseToWarehousing(
        domain tccmp iFinancialCompany,
        domain tcorno iOrder,
        domain tcpono iPosition,
        domain tclot iLot,
        domain tcsern iSerial,
        ref domain tcmcs.s999m oExceptionMessage mb,
        ref long oExceptionID )

function long release_to_warehouse()
{
    long ret
    domain tcmcs.s999m oMsg mb
    long oID

    ret = PurchaseOrderLine.ReleaseToWarehousing(
        575,                       | 财务公司
        tdpor401.orno,              | 采购订单号
        tdpor401.pono,              | 订单行号
        "",                        | 批号
        "",                        | 序列号
        oMsg, oID )

    if ret = 0 then
        Exception.Delete(exception.id)
        message("已释放到仓储")
    else
        Exception.GetMessage(oID, 1, oMsg)
        message("释放失败: " & oMsg)
    endif

    return(ret)
}

最后更新:2026-05-08

参考资料:Infor LN 10.8 Public Interfaces & Process Extensions Reference Guide (On-premises), March 25, 2026

💡 如有 PI 函数遗漏或调用示例需要补充,欢迎通过 GitHub Issue 反馈!