十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
SAP是一个开放源代码的软件,它的程序你都可以看到代码,并且只要你有权限你就可以编辑它的源代码。她使用的语言是ABAP语言,是类似于VB的一种语言,但是她有很多自己的新概念,对数据库的操作十分方便。
创新互联建站主营新泰网站建设的网络公司,主营网站建设方案,重庆APP开发,新泰h5成都微信小程序搭建,新泰网站营销推广欢迎新泰等地区企业咨询
SAP有一个专门的平台供开发人员开发报表或增强,它使用SE38进入,并且使用Z开头的程序名称来命名。
类似于所有的语言的第一个程序Hello world,在SAP里应该怎么写呢?
REPORT ZTest01.
write: / 'Hello world.'.
九九乘法口诀表的程序
REPORT zcheny02.
DATA: v_1 TYPE i ,v_2 TYPE i, v_3 TYPE i.
data : cv_1 type c ,cv_2 type c, cv_3 type string, cv_4 type string.
FORMAT COLOR 4 ON.
v_1 = 1.
WHILE v_1 10 .
v_2 = 1 .
WHILE v_2 = v_1 .
v_3 = v_1 * v_2.
cv_1 = v_1.
cv_2 = v_2.
cv_3 = v_3.
CONCATENATE cv_2 'X' cV_1 '=' cV_3 into cv_4.
write : cv_4.
v_2 = v_2 + 1.
ENDWHILE.
WRITE : /.
v_1 = v_1 + 1.
ENDWHILE.
更详细的说明:
ABAP是一种高级企业应用编程语言(Advanced Business Application Programming),起源于20世纪80年代。经过不断的发展,现在的版本为ABAP/4,SAP R/3的应用程序就是用ABAP/4编写的。
ABAP/4 是面向对象语言。它支持封装性和继承性。封装性是面向对象的基础,而继承性则是建立在封装性基础上的重要特性。
ABAP/4具有事件驱动的特性。
ABAP/4 和COBOL具有类似之处。
ABAP/4适合生成报表。
ABAP/4支持对数据库的操作。
SAP最初开发ABAP/4(高级商业应用程序设计)语言仅为内部使用,为应用程序员提供优化的工作环境。经过不断的改进和修改以满足商业领域的需要。现在,ABAP/4已成为SAP开发所有自己的应用程序的仅有工具。
SAP客户用ABAP/4进行其自身开发。这样的开发对R/3标准解决方案适应特殊问题非常重要
ABAP/4 开发工作平台包含所有用于创建和维护ABAP/4程序的工具。
ABAP/4的可解释特性使其易于生成、测试并运行程序的中级版本,以便将来生成最终版本。此过程也叫做早期原形处理,意味着您不必丢弃中级版本。
ABAP/4是第四代支持结构化程序设计的语言。它合并了所有通常的控制结构和模块化概念。
在ABAP/4开发宝典中文版的第一部分,对ABAP/4的基本特性进行了详细描述。这些特性包括:
ABAP/4 包括
- 带有各种类型和结构的声明数据的声明元素
- 数据制作的操作元素
- 控制程序流的控制元素
- 反应外部事件的事件元素
ABAP/4支持多种语言。文本摘要(例如,标题、页眉和其他文本)将根据程序代码分别存储。您可以随时在不改变程序代码的情况下更改、转换和维护这些文本摘要。
ABAP/4支持商业数据类型和操作。您可以用特殊日期和时间字段进行计算。系统会自动执行必需的类型转换。
ABAP/4提供一系列功能处理字符串。
ABAP/4包含一个叫OpenSQL的SQL子集。用OpenSQL,您可以读取和访问数据库表,与所用的数据库系统无关。
ABAP/4允许您定义和处理内部表,该表只在运行程序时存在。内部表使其更容易处理数据表,并帮助使用程序中的复杂数据结构。
ABAP/4允许您定义和调用子程序。也可以调用其他程序的子程序。参数能够以各种方式从子程序传递或传递到子程序。
ABAP/4 包含一种特殊子程序,叫做功能模块。您可以在中央库中创建和维护功能模块。在调用程序和子程序之间功能模块有一个明确定义的数据接口。它们能够以调用程序的独立模式进行分别测试。
这里有两种主要的ABAP/4程序类型:
-报表程序
报表程序用于分析数据库表中的数据。这种分析的结果可以显示在屏幕上或发送到打印机上。逻辑数据库支持报表程序。逻辑数据库是特殊的ABAP/4程序,使开发者不必编码所有的数据库访问。
-对话程序
将对话程序组织为包含对话模块的模块池。每个动态程序(由一个屏幕及其流逻辑组成的“动态程序”)都基于一个ABAP/4对话程序。流逻辑包含对ABAP/4对话模块的调用。
sap公司代码定义
SAP概念之Client(集团)
Client(集团)是SAP系统的一个组织单元/结构。该组织单元是最高层次的,也是所有实施SAP应用模块必须创建并维护的组织结构。每个Client在与其他业务、组织、技术等方面与其他Client都是独立的,有各自的主数据和数据库表。
在Client层次设置的系统属性和参数,适用于于该Client下的所有公司/公司代码等其他组织架构/单元;所有的输入和产出、处理加工都是分Client进行的,即不跨Client处理。
这也就是说,一个单位多个公司,设置成多个Client后,则:
(1)一个用户处理不同Client的业务,需要在每个Client下创建用户账号,并分配权限;
(2)不同Client中公司的同一个客户、供应商、物料等等都必须在各自的Client下创建维护,不能在一个Client下一次性创建,多个Client共享。
R/3初始安装时,有两个默认的Client即000和001;这两个Client包含必要的默认配置内容,因此可以作为创建新Client的模板。
实务处理中,一个Client可以与一个公司对应,也可以与多个公司对应。例如,一个集团,跨了很多行业,每个行业都有不少的公司。此时,如何有效设置和管理Client?为了保证Client层次上的数据充分共享和一致,整个设置为一个Client,而其下的行业等可以通过其他维度,比如控制范围等来划分。一个集团两个公司,设置为两个Client的,那么同一用户同时涉及到两个单位的业务,就必须为该用户在两个Client创建两个账户,分配两次权限。这显然会增加维护工作量,并且难以保证Client层次上一些数据的一致性。
SAP概念之Company(公司)
在SAP中,Company(公司)与Company Code(公司代码/公司码)是两个不同,但是又相联系的概念。
Company是根据相关法律规定出具财务报告的最小层次组织单元。
一个Client下,一个Company可以与一个或多个Company Code对应起来,一个Company Code只能对应一个Company。在启用SAP模块中,Company Code是必须的,而Company是选择性的。Company Code层次财务报表时自动生成的,而Company的财务报表是基于Company Code的合并报表。这也是SAP多维度和层次出具财务报表的一个体现。对于不需要出具这种合并报表的单位,Company是不需要进行维护的。
某单位实施SAP时,有这样的场景:全国一个总公司,下属42个分公司(非法人)。SAP处理中,将这43个总分机构都设置成Company Code,同时,设置了43个一样的Company。因为公司也需要出具各个分公司的报表和总公司的财务报表,所以上述设置没有真正启用SAP的合并报表功能,如果43个Company Code对应到1个Company,则可在系统内出具总公司层次的合并报表。
上面这段有失偏颇,理由有2:
1、设置43个company可以出合并报表,对于数据的汇总,设置成1个company还是43个company没有区别
2、设成43个company可以很好的解决内部抵消,如果设置成1个,无法实现灵活的内部抵消
所以,我支持设置成43个。
这里系统在组织架构本身,体现了如何处理法人和非法人的关系——会计上,法律实体一定是会计主体,而会计主体未必一定是法律主体。就像上面的,分公司是会计主体,却并非法律实体。因此,会计主体对应到Company Code层次,而法律实体对应到Company层次是可以满足两个层次分别出具报表要求的。
为了保证数据的一致性和可合并性,同一个Company下的Company Code必须使用相同的会计科目表(Chart of Account)和会计年度(Fiscal Year)。但是每个公司代码都可以使用不同的本币(Local Currency)。
基本的配置分为两部分:
(1)定义Company:组织架构-定义-财务会计-定义公司;
(2)将Company分配给已经定义的Company Code:分配-财务会计-将公司(Company)分派给公司代码(CompanyCode)。
SAP概念之Company Code(公司代码)
Company Code(公司码/公司代码)是依照外部会计要求的会计实体(一般)而设置的最小组织单元,有其自身完整的科目和帐套。所有的业务交易过账之后都将在该层次上得以反映和记录,以出具法定的财务报表,如资产负债表、现金流量表和利润表。
因此,Company Code的定义和维护时必须的,如果要启用SAP的一个应用模块的话。Company Code(公司码/公司代码)是FI模块最核心的组织单元;启用财务模块至少要定义一个公司代码,也可以说,每个Client的启用至少也应该有一个公司代码。
上面说到公司代码一般是根据会计实体要求设置的,实务中也可根据需要以其他标着设置公司代码,如一个不同地点的,分开,但是不完全独立的经营场所。例如,在国外的分支机构就是典型的例子。该分支机构不单独作为会计实体,但是需要采用相适应的货币、税率等准则。此时,单独设置成一个公司代码处理。而这个国外分支机构的公司代码和国内的总部对应的公司代码合并起来,对应一个公司(Company),认可可以出具国内规定的会计实体层次上的财务报表。又如,同一个地区,一个公司如果要将其两个工厂的业务完全分开,也可以设置成两个公司代码,然后对应到同一个公司(Company)。
公司代码是财务会计模块最核心的数据,是因为,其他模块产生的会计记录都最终转化为公司代码层次的财务记录进入FI模块了。因此,其他能够产生财务记录的模块自身的特有组织单元都与公司代码有适当的关联规则。于此,类似Controling Area是CO模块最核心的组织单元。
我不知道你说的是不是 transaction code,我觉得这个应该可以翻译成你说的“业务代码”吧。我的理解是,它是一个在SAP系统中使用的代码,可以是在界面的左上角的输入域中输入, 通过这个代码可以进入不同的屏屏幕并进行一些对应的业务操作。