
import com.sap.mw.jco.JCO
import com.sap.mw.jco.IFunctionTemplate
import com.sap.mw.jco.JCO.Structure
public class Create_Item extends Connect_Sap_Server{
private JCO.Client mConnection = this.getConnection()
private JCO.Repository mRepository = new JCO.Repository("Repository", mConnection)
private JCO.Function function = null
private JCO.Table data = null
private String[] SAPInterfaces
public Create_Item(){
try {
function = this.createFunction("BAPI_MATERIAL_SAVEDATA")
if (function == null) {
System.out.println("BAPI_MATERIAL_SAVEDATA"
+ " not found in SAP.")
System.out.println("SAP_RFC中没有此函数!")
System.exit(1)
}
JCO.Structure head_data = function.getImportParameterList().getStructure("HEADDATA")
head_data.setValue("00000000999914886", "MATERIAL")//物料号
head_data.setValue("ROH", "MATL_TYPE")//物料类型
head_data.setValue("M", "IND_SECTOR") //行业领域(L、零售;A、工厂工程/结构;C、化学工业;M、机械工程;P、药品)
head_data.setValue("X", "BASIC_VIEW") //基本数据视图
head_data.setValue("X", "PURCHASE_VIEW")//采购视图
head_data.setValue("X", "ACCOUNT_VIEW")//会计视图
//head_data.setValue("X", "SALES_VIEW")//销售视图
head_data.setValue("X", "MRP_VIEW") //物料需求计划(MRP)视图
//物料描述(MAKT)
JCO.Table mtl_desc = function.getTableParameterList().getTable("MATERIALDESCRIPTION")
mtl_desc.appendRow()
mtl_desc.setValue(this.changecode("神奇的钻头【java开发测试用物料】"), "MATL_DESC")//物料描述
mtl_desc.setValue("ZH", "LANGU_ISO")
mtl_desc.setValue("1", "LANGU")
//客户端层次物料数据(MARA)
JCO.Structure client_data = function.getImportParameterList().getStructure("CLIENTDATA")
client_data.setValue("999914886", "MATERIAL")
client_data.setValue("ST", "BASE_UOM") //基本计量单位
client_data.setValue("ST", "BASE_UOM_ISO")//ISO 代码的计量基本单位
client_data.setValue("01", "MATL_GROUP")//物料组
//client_data.setValue("", "EXTMATLGRP") //外部物料组
client_data.setValue("X", "ENVT_RLVT") //关键件标识
//========start====
//此处必须写如果不写会报“字段MARA-MEINS/BAPI_MARA-BASE_UOM(_ISO)被定义为必需的字段它不包含条目”
//等错误并且在SAP中看不到相应的数据
JCO.Structure clientx_data = function.getImportParameterList().getStructure("CLIENTDATAX")
clientx_data.setValue("ST", "BASE_UOM")
clientx_data.setValue("ST", "BASE_UOM_ISO")
clientx_data.setValue("01", "MATL_GROUP")//物料组
clientx_data.setValue("", "EXTMATLGRP") //外部物料组
//========end======
//工厂级别的物料数据(MARC)
JCO.Structure plant_data = function.getImportParameterList().getStructure("PLANTDATA")
plant_data.setValue("2005", "PLANT") //工厂
plant_data.setValue("Z48", "PUR_GROUP") //采购组
plant_data.setValue("KP", "AVAILCHECK") //可用性检查的检查组
plant_data.setValue("PD", "MRP_TYPE") //MRP类型
plant_data.setValue("G01", "MRP_CTRLER")//MRP控制者
plant_data.setValue("000", "SM_KEY") //计划边际码
plant_data.setValue("EX", "LOTSIZEKEY") //批量 (物料计划)
JCO.Structure plantx_data = function.getImportParameterList().getStructure("PLANTDATAX")
plantx_data.setValue("2005", "PLANT")
plantx_data.setValue("KP", "AVAILCHECK")
plantx_data.setValue("PD", "MRP_TYPE")
plantx_data.setValue("G01", "MRP_CTRLER")
plantx_data.setValue("000", "SM_KEY")
plantx_data.setValue("EX", "LOTSIZEKEY")
mConnection.execute(function) // 执行配置好的function
JCO.Structure returnStructure = function.getExportParameterList().getStructure("RETURN")
if(!(returnStructure.getString("TYPE").equals("") || returnStructure.getString("TYPE").equals("S"))){
System.out.println(returnStructure.getString("MESSAGE"))
throw new Exception("新增数据失败:" + returnStructure.getString("MESSAGE"))
}
function = this.createFunction("BAPI_TRANSACTION_COMMIT")
mConnection.execute(function)
System.out.println("新增物料主数据成功!")
} catch (Exception ex) {
ex.printStackTrace()
System.exit(1)
} finally {
if (mConnection != null) {
mConnection.disconnect()
}
}
}
1、跨系统的货物转储: 转储订单在订货工厂创建、并转送到供货工厂,而供货工厂可以存在于另一R/3系统。订单行项目包含的供货工厂可以属于同一公司代码或不同公司代码。该功能通过少量的 *** 作,去完成跨多个后勤系统、CLIENT和公司代码的业务处理。 在跨系统的物料转移中,包括了物料的批次管理。批次数据从源系统传送至目标系统,当批次数据被分配时,相关的特性(如批号,批次状态,批次规格)同时被确定。2、采购凭证的版本管理功能: 可以为以下凭证创建版本:采购申请、询报价、采购订单、合同、计划协议。 SAP系统在创建采购申请或外部采购凭证时,创建第一个版本。从此,修改或更新的数据将记录在每一个当前的版本中,当凭证被保存时,系统会创建一个新版本。版本中记录采购凭证的版本号,并显示修改记录。 在采购业务中,区分不同版本的相关采购凭证是必要的,例如,当你与供应商交涉时,可能需要参照某一个指定的版本。
3、“批次调用清单”报表的优化:可以在第一屏定义批次使用清单中的数据如何显示,例如你可以设置:扩展转移过账,或显示供应商批次。
4、MIGO事务的功能增强: 当录入其他收、发货时,你可以从前面的项目的复制现成的科目分配数据到新的项目中。只要在菜单“设置-缺省值”中修改缺省值,设置“复制科目分配字段”标识即可。例如:进行移动类型为201的发货 *** 作时,每个行项目中的“成本中心”、“总账科目”都会缺省为与第一个行项目相同(而不采用系统已配置好的科目)。 进行收货、发货、转储等 *** 作时,可以指定一个物料凭证为参考。
5、发票校验新增报表: 后勤发票校验提供了一个新的报表“显示发票清单”,可以显示发票凭证清单。做为发票总览的新增程序, 你可以扩展选择标准和显示选项。例如,在选择屏幕中可以选择:一次性科目,发票合计、输入日期。你也可以显示专家模式,在此你可以通过财务凭证、带G/L科目过账的凭证和带物料过账的凭证以及工厂,进行选择.
ECC6.0 SD模块增强功能描述
1、后勤执行的新的业务附加项:提供灵活的解决方案,丰富的功能,适应更多变化的业务流程。业务附加项,查看,删除,修改,添加,保存 *** 作灵活。
2、分散仓库的变化管理:在4.6C版本中,你可以分配发货数据到分散的仓库,或者到第三方仓库管理系统,那么在中心系统中变化就被冻结了。新的系统功能可以让你集中的更改发货单,比如,如果货物已经分销到分散的仓库,客户又想修改订单数量,那么你可以在两个系统中执行变更的动作。
3、仓库管理的交叉卸货:无论是基于库存转移或发货的货物转移的需求都可以保存在系统里。你可以手动的创建交叉卸货。交叉卸货的需求可以在收货和产生转移单的时候被检测到,并产生交叉卸货转移单。
4、增加的发货更新功能:过去每个仓库管理转移单的确认后立即在发货单过账,这样会导致锁定和执行的问题。特别如果是大量的发货单,在不同工作流程中的很多人都要对相同的发货单做更新。现在就可以收集发货单的所有单独的确认,而后再传递更新。SAP系统收集每个转移单项目的更新的 *** 作,并记录是否已经更新到发货单了,当最后一个转移单的确认完毕,这个更新才传递到发货单。
5、内向交货的部分收货过账:很多情况下,收货并不是针对完整的发货或是内向交货,而是部分数量,比如,处理单元,包裹或者是托盘,新的功能就包括了对内向交货的部分数量过账。以下功能都可以实现:单个内向交货项目过账;单个内向交货项目的部分数量收货;单个处理单元收货。
6、多个交货单的拣配合并:标准的转移单是严格参照一张交货单的,但是发货单数量很小,这样聚集多个交货单的拣配需求就很有用了。步骤:相关的交货单分组-〉为每组交货单创建转移单-〉释放拣配清单。
7、任务资源管理(TRM):TRM控制仓库任务和优化任务的有序执行。在mySAP SCM里,TRM保证了可以在正确的时间,利用合理的资源处理好任务。TRM帮助仓库进行最少化发送工作,简单易用,并且与后勤执行系统无缝连接
ECC6.0 FI模块增强功能描述
1、XML文件形式的销售和采购税的预申报。可以通过报表RFUMSV00以XML文件形式创建销售和采购税的预申报,并可以在向相关部门报出前进一步加工和修改。XML是一种灵活的数据转换技术。
2、可选的价值计算。可选的价值计算是对实际成本核算的一种加强。在标准成本核算的基础上,用户可以用该方法计算累计期间的实际成本。同时,可以对同一工厂用不同的价值计算方法,比较或估算其结果。
3、资本申请 (IM-FA-IA)。资本申请具有以下功能: 可由资本申请生成任何数量的项目和WBS元素。 资本申请中计划成本的计算是用“简易成本计划编制”工具完成的,并可分配至独立的WBS元素。 可生成跨项目的报表。
4、外部资产会计引擎。资产会计引擎可满足相关外部需求。它可以将主数据及帐务数据自动转换成对外可用的状态。
5、审计信息系统。审计信息系统的输出界面更加友好,并能基于角色输出。
6、附加责任区域权限。“责任区域”指用户可以通过其快速获得某一区域的所有权限。4.0版本以后,我们可以把成本中心的标准层次节点作为权限对象(责任区域),就可以同时获得该节点下所有成本中心的权限。现在,我们可以使用2种附加层次结构,比如可以对属于同一项目但属于不同公司代码的成本中心定义权限。
7、付款的自动计划。用户可以通过付款的自动计划,编制功能计划,付款申请和更新运行(SAPF110S)。可通过计划编制器计划定期的付款运行。功能描述: 可以使用报表对付款程序编制计划。这种方式需将选择标准保存为变式,如果使用选择变式,可以按照特定标准计划定期付款运行。选择变式方式,系统会自动计算运行时间。 计划编制器具有集成的计划功能。以前,系统只能对付款申请做计划,如今,系统可以实现对付款申请和付款更新运行做计划。
8、业务伙伴主数据中的用户自定义字段。用户可以扩展客户和供应商主数据,加入这些业务伙伴的附加信息。用户可以创建自己的子屏幕,在其中加入所需字段。用户自定义的子屏幕通过业务伙伴主数据中的附加选项创建,以附加页签的形式出现,用户最多可为每个选项定义32个页签。为此,用户需要在完成创建子屏幕的相关配置 (IMG)。用户自定义的子屏幕会以BAPI的方式嵌入到程序中。
9、固定资产会计。固定资产会计提供新的功能,包括支持基于半年度结算的半年度折旧计算(日本等国家的法定要求),更灵活的平行估价过程,用户自定义的账户分配对象。支持更强的账户分配对象功能,折旧运行和期间资产过账程序经过了重新设计。
BAPI创建和修改物料主数据BAPI_MATERIAL_SAVEDATA
简述:
创建和修改物料主数据
功能描述:
可以用此BAPI创建新物料和修改已存在物料主数据。当创建物料时,必须输入物料号(material number),物料类型(material type),Industry sector,同时也要输入物料描述(material description,参数为MATERIALDESCRIPTION)和描述语言(language)。
当要修改物料时,你只需输入物料号(material number)就可以了。
在header data(必传的参数)中,至少要选定一个物料数据视图来创建,依据选定的视图,必须维护其他的参数,如果每个视图中必须的field没有维护,FM执行会返回错误,物料创建不会成功。
所有要维护的物料视图所需的数据,都要在调用此BAPI前在调用程序中填好相应的参数值,并且要打上 *** 作标记,这样数据才能被FM维护到数据库中。如参数CLIENTDATA,其field的 *** 作标记要维护到参数CLIENTDATAX中。有关联的 *** 作标记checkbox table 的 物料视图数据table中不包括:语言相关文本数据(MAKT,MLTX),International Article Numbers (MEAN), 税的分类(MLAN),这些物料数据可直接传入相应的参数来生成。
如果内表或structure(参数)中含有度量单位(如CLIENTDATA-BASE_UOM),语言标识(如MATERIALDESCRIPTION-LANGU),或者是国家标识(如TAXCLASSIFICATIONS-DEPCOUNTRY),此参数总会有一个以_ISO结尾的同名field。这就使得度量单位、语言标识、国家标识等我们可用标准的SAP code,也可以ISO 标准code。在未来业务流程中每个ISO code都有对应的标准SAP code。
如果要维护物料长文本(如:basic data texts, internal comments, purchase order texts, material memos, or sales texts)或自定义的物料数据field,一些特定的条件必须要定好,它们在参数MATERIALLONGTEXT 和 EXTENSIONIN中描述。
参数:
详情请参见BAPI的定义,很容易使用的。
另外:
对于BAPI的 *** 作都要用BAPI_TRANSACTION_COMMIT来提交的,所以要判断BAPI的执行情况的返回值(参数RETURN),如果有错误要用BAPI_TRANSACTION_ROLLBACK取消所做的 *** 作。建议提交BAPI *** 作时,加上wait参数,这样会减少某些错误。
call function 'BAPI_TRANSACTION_COMMIT'
exporting
wait = 'X'.
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)