首页 > 其他分享 >SAP C4C工程库

SAP C4C工程库

时间:2024-07-02 23:30:22浏览次数:17  
标签:工程 AP BO number ABSL C4C var import SAP

SAP C4C工程库在这里插入图片描述

1. 什么是SAP工程库

SAP提供了一系列的基础工具方法供用户使用,Context就是一个简单的集合库,它可以获取当前登录用户,当前时间…

example:

//获取当前登录用户的UUID
var identityUUID = Context.GetCurrentIdentityUUID()
//获取当前日期
var date = Context.GetCurrentUserDate()

2. SAP Platinum Engineering Libraries

除Context这些不需要引入即可使用的库外,SAP也提供了一些隐藏的库.你需要引入后才可以使用

在你的ABSL代码中添加以下两行代码

import AP.PlatinumEngineering;
import AP.PlatinumEngineering.Public;

example:

①.对字符串进行加密操作.除以下例子中的md5外,你还可以尝试其它的加密方法.但是sap并未提供任何和此相关的文档.因此需要自己去探索

//md5加密
var str = "需要加密的字符串";
var md5Str = Hash.GetForString("MD5",str);//md5Str为加密后的结果

②.判断一个业务对象是否被锁定.

当你在一个BO对象里使用ABSL代码操作另一个BO对象时,如果这个对象被锁定,则会出现dump.为避免此问题,你应该对此进行判断

//检查一个支持消息(ServiceRequest)是否被锁定
var locked = false;
var errMsg = "";
var uuid = "检查的对象uuid"
var checkLock = BOAction.CheckLock("ServiceRequest", "http://sap.com/xi/AP/CRM/Global", "Root", uuid);
if (checkLock.MessageTypeItem.Count() > 0) {
    foreach (var itemMssg in checkLock.MessageTypeItem) {
        if (itemMssg.MessageSeverityText == "E" && itemMssg.MessageID.content == "AP_ESI_COMMON/101") {
            locked = true;
            errMsg = itemMssg.Text.content;
            break;
        }
    }
}
if(!locked){
   //code
}else{
    //code
}

BOAction.CheckLock的参数,你可以通过以下路径找到

③.sap提供的工具库列表,例如:邮件,Http请求,BO操作(BOAction),更改历史(ChangeHistory)

sap未提供此相关文档,因此可能存在被下线的风险,谨慎使用

  • AddonSupport
  • Binary
  • BOAction
  • BPHierarchy
  • Calendar
  • ChangeHistory
  • Codelist
  • Context
  • CSV
  • CurrencyConversion
  • Date
  • DateTime
  • DocumentService
  • Duration
  • Fuzzy
  • GlobalDateTime
  • Hash
  • LanguageCode
  • LocalDateTime
  • LocalizedNormalizedDateTime
  • Mail
  • MDRO
  • NumberRange
  • Numeric
  • NumericCharacter
  • Odata
  • OrgUnitUtils
  • Output
  • OutputManagementUtilities
  • Performance
  • QuantityConversion
  • RetailExecution
  • SADLQuery
  • SalesHelpFunctions
  • SessionContext
  • TextAnalysis
  • Time
  • Trace
  • URL
  • UserUtils
  • Utilities
  • UUID
  • WebDav
  • WebserviceUtilities

3.Reuse Library

除了官方提供的工具库,你也可以创建自己的重用库

image-20211014162506107

example:

①.为自定义的BO类型创建流水号

Import: 导入的参数

Return: 返回值

你想为不同的BO类型创建不同起始编码的流水号,因此需要一个传入参数来区分不同BO

image-20211014162724855

image-20211014163104145

import ABSL;

var result : DataType::ID;
var number = NumberRange.DrawNumber(customBoType);//获取一个此对象的流水号
if(customBoType == NumberRangeTypeCode.CO_QUICKREPAI){
	number = 3000000000 + number;
}else if(customBoType == NumberRangeTypeCode.CO_INSTALLATIONPOIN){
	number = 2000000000 + number;
}else if(customBoType == NumberRangeTypeCode.CO_EMSNUMBER){
	number = 70000000 + number;
}
result = number.ToString();
return result;

②.你可以将重用库应用到UI上

例如你想在一个OWL列表加载时,获取到此用户的UUID,然后只显示此用户创建的对象(前提:BO中记录了创建者字段).有时这会比标准的AccessControlContext权限控制体系更加的轻便灵活

和前面一样,你应该在你的库中创建一个方法,例如GetCurrentUser,由于没有传入参数,你可以至保留一个Return

import ABSL;
import AP.Common.GDT;
import AP.PC.IdentityManagement.Global;
import AP.FO.BusinessPartner.Global;
var result : DataType::LANGUAGEINDEPENDENT_LONG_Text;
//以下两行可以获取更详细的用户信息,灵活使用
//var myIdentity = Identity.Retrieve(Context.GetCurrentIdentityUUID());
//var employee =  Employee.Retrieve(myIdentity.Person.UUID);
result = Context.GetCurrentIdentityUUID();
return result;

然后你需要在UI Designer中,Query中的筛选字段,进行字段转换.

除此之外,你还可以直接在Field Transformations中添加新的转换事件,将ABSL中的返回值绑定到datamodel中的字段.进行更进一步的开发

image-20211014165205781

③.在第②步的基础上,你可以尝试增加一个input传入参数,这样你就可以通过UI上的字段传到ABSL代码,ABSL返回的值再传回UI.实现更复杂的转换步骤

image-20211014164935356

标签:工程,AP,BO,number,ABSL,C4C,var,import,SAP
From: https://blog.csdn.net/qq_32750851/article/details/140131422

相关文章

  • 气象信息系统工程-实习篇
    实习一Fortran文件的读取与处理实习1a:已知1951-2010年1月蒙古高压强度指数、面积指数、经度指数、纬度指数序列资料分别为p.dat、s.dat、lon.dat和lat.dat。利用Fortran语言编写程序,调用子程序计算这四个指数的气候态(均值)、变率(均方差)和距平值,并将这四个指数的均值和变率写入十......
  • 软件工程实训大作业报告(旅游信息管理系统|小组合作完成)
    目  录一、项目计划1.1定义1.2目标1.3计划二、需求分析2.1初定功能需求模块2.2基本流程2.3用例图2.4用例说明2.5性能需求规定2.6运行环境规定三、概要设计3.1功能模块划分3.2用例图3.3用例说明(新增用例)3.4业务流程3.5系统出错处理设计......
  • 轻松调用其他工程的Python文件,提升编程效率
    哈喽,大家好,我是木头左!一、前言在Python开发过程中,经常会遇到需要在一个工程中调用另一个工程的Python文件的情况。这种情况通常发生在需要复用已有代码或者进行模块化开发时。那么,如何实现这一目标呢?本文将为你揭晓答案。二、Python模块导入原理在Python中,可以使用import语......
  • 气象信息系统工程-fortran
    《气象信息系统工程》一命速通HandsonFortran&OpenGradsFortran与OpenGradsFortranprogrammain!exampleimplicitnonerealst1,st2,st3,stavest1=9.5st2=9.0st3=8.7stave=(st1+st2+st3)/3.0print*,'stave=',staveen......
  • Python 执行其他工程的 Python 文件
    哈喽,大家好,我是木头左!三级标题:探索Python的模块化特性Python是一种广泛使用的高级编程语言,其设计哲学强调代码的可读性和简洁的语法。其中一个重要的特性就是模块化,即允许创建、使用和重用代码模块。这种模块化的特性不仅使得的代码更加清晰和组织化,而且还能让在多个项目中......
  • 振弦采集仪在岩土工程监测中的优点与应用
    振弦采集仪在岩土工程监测中的优点与应用河北稳控科技振弦采集仪是一种常用的岩土工程监测仪器,通过测量振弦的振动频率和振幅,可以得到土体的力学特性参数,从而对土体的变形和稳定性进行分析和评估。振弦采集仪具有一些优点,同时在岩土工程的监测中有着广泛的应用。 第一,振弦采......
  • 软件工程结课感言
    成绩出来刚开始是很不理解的因为在这一学期中,我自认为这一学期我并没有荒废首先点评一下个人作业 1.安卓选课系统我很快就完成了老师的这个任务连接了远程数据库 2.每日学习打卡我也是很早的就完成了这个任务并找老师验收 3.地铁查询实现了所有功能评级B 4.极......
  • 构建工程化:建立平台化工程体系
    一、功能描述工程化体系主要是解决能够统一进行打包的问题,故需要对整体进行描述1.1、子项目描述1.1.1、配置管理对于每一个子项目而言,需要有专门的配置管理目录,目录的建议组建方式为conf/defalut和conf/local,其中defalut目录下存放组建默认的启动时配置,local为客户环境......
  • 软考之嵌入式系统设计工程师知识总结
    文章目录软考考试介绍输入输出控制方式计算机的基本组成指令流水线嵌入式软件概述进程管理:三态模型进程管理:PV操作分区存储嵌入式微处理器体系结构网络攻击术语二分查找法常用数字集成电路逻辑电平接口技术——TTL->CMOS转换D/A接口基本原理与结构——D/A转换器的工作原......
  • 【吴恩达机器学习-week2】可选实验:特征工程和多项式回归【Feature Engineering and Po
    支持我的工作......