Jerry Wang的SAP工作日志 - 2016年1月

简介: Jerry Wang的SAP工作日志 - 2016年1月

2016-01-02

perform build_lc_user_stat

防窥膜101556973

Your ticket has been successfully sent. TicketID: 800109225

小鱼1 - 拼好的面朝自己

小鱼2 - 拼好的面朝右边。

逆时针三轮换:小鱼1+整个魔方转180度+小鱼2

顺时针三轮换: 小鱼2+整个魔方转180度+小鱼1

小鱼1顶层一直在做逆时针旋转


2015-1-3

9:11AM开始quiz 50.

image.pngimage.png

在一个final类型的实例域被赋值之前,存在着取勇其值的可能性。此时它包含的仍旧是所属类型的缺省值。只要一个构造器调用了一个已经被子类覆写了的方法,就会出问题,因为这种方式被调用的方法总是在实例被初始化之前执行。不要在构造器中调用可覆写的方法。image.pngCache类有两个静态初始器,顶端的一个static语句块,以及静态域initialized的初始化。

如果初始化代价较高,或者该域在某些执行中不会被用到,那么惰性初始化适用。image.png

在静态方法调用中,适用表达式作为其限定符不是好主意。表达式的值所引用的对象的运行期类型在确定哪一个方法被调用时不起任何作用。静态方法调用的限定表达式是可以计算的,但是值将被忽略,没有任何要求其值为空的限制。

Java不允许一个本地变量声明语句作为一条语句在for,while或do 循环中重复执行。只能直接出现在一个语句块中。

image.png

当一个线程访问一个类的某个成员时,它会检查这个类是否已经被初始化。有4种可能:


该类尚未被初始化

该类正在被当前线程初始化,这厮对初始化的递归请求。

该类正在被其他线程而不是当前线程初始化

该类已经被初始化

后台线程执行run方法,将initialized 设置为true之前,回去检查Lazy类是否已经被初始化。这个时候,这个类正在被另外一个线程初始化,即情况3, 于是当前线程,即后台工作线程会等待class对象直至初始化完成。那个正在进行初始化工作的线程,即主线程,正在等待着后台线程运行结束。死锁。

image.png

等价关系:自反,传递,对称。

==不是自反。Double.NaN == Double.NaN不成立。

当比较两个原始类型数值时,==首先进行二进制数据类型提升 - binary numeric promotion, 会导致两个数值中有一个会进行拓宽原始类型转换 - widening primitive conversion. 将int或者long转换成float,或者long转换成double时,会导致精度丢失。

实现不可传递性:

选择两个较大的但不相同的long型数值赋给x和z,将一个与前面两个long型数值相近的double型数值赋给y。==作用于原始类型时具有不可传递性。

image.png

一个原生类型就是一个没有任何类型参数的泛型类的名字。List是泛型接口,List是参数化的类型,List是一个原生类型。一个原生类型的所有势力成员都要被替换掉,在一个实例方法声明中出现的每个参数化的类型都要被其对应的原生部分所取代。

变量p是属于原生类型Pair,所以其所有实例方法都要执行这种擦除。包括声明返回List的方法stringList. 编译器会将这个方法解释为返回原生类型List。

参数化类型List虽然是方法stringList的返回类型,但它与Pair88的类型参数没有关系,事实上最后被擦除了。

每次调用getAnnotation方法时都会涉及到两个Class对象。


在其上调用该方法的对象 - 通过反射获得

作为传递参数指出需要哪个类的注解的对象 - 类名称字面常量。

2015-01-04

jQuery.sap.registerModulePath

jQuery.sap.registerModulePath(“sap.cus.crm.lib.reuse”, sPath + “…/crm_lib_reuse/sap/cus/crm/lib/reuse”);

If the workaround is to remove the cache busting token you added to the URL, why did you add it in the first place?

Maybe a better solution is to remove the token from the URL until you come to a decision.

extHookNavigateAfterCreate

image.png

一个泛型类的内部类可以访问到它的外围类的类型参数,所以Node完全不需要有自己的类型参数。image.png

一个非静态的嵌套类的构造器,在编译时会将一个隐藏的参数作为它的第一个擦数,这个参数表示了它的直接外围实例( immediately enclosing instance). 当在代码中任何可以让编译器找到合适的外围实例的地方去调用构造器时,该参数就会被隐式传递进去。当你使用反射调用构造器时,这个隐藏的参数需要被显式地传递,这对于Class.newInstance是不可能做到的,只有使用java.lang.reflect.Constructor.

如果Inner实例并不需要一个外围的实例出的话,可以将inner类型声明为static。优先使用静态成员类。

当你在一个泛型类中嵌套另一个泛型类时,最好为类型参数设置不同名字。

class Inner1 extends

Inner2的超类本身也是一个内部类,要想实例化一个内部类,例如Inner1,需要提供一个外部类的实例给构造器。一般情况下,它是隐式地传递给构造器的,但是也可以通过expression.super(args)的方式通过超类构造器调用显式地传递。如果外部类实例是隐式传递的,编译器会自动产生表达式,它使用this来指代最内部的其超类是一个成员变量的外部类。Inner2间接扩展了Quiz90类,Inner便是它的一个继承而来的成员。因此,超类构造器的限定表达式直接就是this,编译器提供外部类实例,将super重写成this.super.

image.png

序列化系统会反序列化Sub实例中Super的域,即set。包含了一个队HashSet的引用。在内部,每个HashSet实例包含一个队HashMap的引用,HashMap的键是该散列集合的元素。HashSet有一个readObject方法,创建一个空的HashMap,并使用HashMap的put方法,针对集合中的每个元素在HashMap中插入一个键值对。put方法会调用键的hashCode方法以确定它所在的bucket。在我们的代码中,散列映射表中唯一的键就是sub的实例,而它的set域正在被反序列化。这个实例的子类域,即id,尚未被初始化, 因此值为0.而Sub的hashCode将返回这个值,而不是最后保存在这个域中的值666.因为hashCode返回了错误的值,相应的键值对将会放入错误的单元格中,当随后id被初始化成666时,一切都太迟了。


包含了HashMap的readPObject方法的序列化系统总体上违背了不能从类的构造器或者伪构造器中调用其可覆写方法的guideline。

Super.readObject

-> HashSet.readObject

-> HashMap.put

->Sub.hashCode, 而sub实例正处于创建过程中,被覆写的方法在sub域被初始化之前就被调用了,而该方法需要依赖于Sub的域。

如果一个HashSet,HashTable或者HashMap被序列化,必须确认其北荣没有直接或间接地引用到它们自身。

image.png

所有的本地,内部,嵌套和匿名的类都可以毫无限制的访问彼此成员。

name方法并没有被继承到reproduce方法中的匿名类中。所以,匿名类中对于printName方法的调用必须关联到外围实例main而不是当前实例reproduce。

enclosing scope:含有正确名称的方法的最小外围范围。

Quiz 72: final修饰符对于方法和域而言,完全不同。对于方法,final意味着该实例方法不能被覆写,或者静态方法不能被隐藏。对于域,final意味着其不能被赋值超过一次,但是可以被隐藏。


Hello colleagues,

This incident is talking about Sales Order application in Fiori. However, the component CRM-FIO-BTX is only responsible for the following CRM Fiori applications:


CRM-FIO-BTX-APP: Activity Management

CRM-FIO-BTX-LEA: Lead Management

CRM-FIO-BTX-OPP: My Opportunities

CRM-FIO-BTX-TAS: Task management

I am afraid you have put to the wrong component.

CRM-BTX-SLO

CRM_STATUS_MAINTAIN_OW


2016-01-05

The test proves it’s not the Fiori Client but the UI5 interaction with the iOS WKWebView.

Dear UI5 colleagues,

Would you please kindly have a look at this issue? From application side we made several researches however we didn’t find any hint from application point of view. As suggested from Fiori Client team colleagues, we need your expertise here.

For your convenience I summarized current situation as below:

Customer COULD NOT reproduce this issue in their laptop via Chrome;

Customer COULD reproduce this issue in their mobile device using:

a. Fiori Client

b. Safari browser

From application side, we have told customer to switch on traces on gateway and CRM backend system ( for details please kindly refer to my reply 28.12.2015 07:25:19 Jerry Wang ), unfortunately we didn’t find any related hint for this issue.

Fiori Client team colleagues suspected that it might be some problem in UI5 code interaction with iOS WKWebView (iOS8 or later).

As this issue could not be reproduced in Chrome, would you please kindly help to find the root cause? Thanks a lot for your kind help!

Best regards,

Jerry

DocumentNextUserStatuses

TASKSTATUSES

TaskStatus

DOCUMENTNEXTUSERSTATUSES

are/?id=2c828f8c88b6914996e308a3dff59d40&type=note

this.input = List…MODULE. a p p l y ( P r e d e f . . M O D U L E .apply(Predef..MODULE.apply(Predef..MODULE.wrapIntArray(new int[] { 1, 2, 3, 4, 5 }));

“xs” <error(s)_during_the_evaluation>

?id=5b53bf1a0d57ac706389c4004f7f5d4c&type=note

假设目标字符串 s,长度i,词典为 dict,f(i) 表示子串 [0,i) 是否可以被“break”,那么,对于所有的以 dict 中的词语 s[k,i) 结尾的 s,只要其中一条的 f(k) 为true,f(i) 就为true:

f(i) = (s[k,i) ∈ dict) && f(k)


2O16-01-06

ZCRM_TASK_0001

2016-01-07

key a: FA163EE56C3A1EE5AD89008F1DBB0B45

key b: FA163EE56C3A1EE5AD8901590BA7CB46

input guid: FA163EE56C3A1EE5AD89008F1DBB0B45

CL_CRM_TASK_RT~GET_DOCUMENT_HISTORY

=CORREL(A1:A8,B1:B8)

=CORREL(A1:A8,B1:B8)

opp id: 2319 085859 TARGET OPP ID: 2763

image.pngre/?id=9d45783d487f9949595a681cfa623c5a&type=note


张杰的博客: http://www.perfect-is-shit.com/

Standardized Technical Architecture Modeling TAM


2016-01-09

image.pngcd tmp/a/b/c && pwd

import scala.{specialized => sp}

trait S1[@sp A, @sp B, @sp C, @sp D] { def f(p1:A): Unit }


2016-01-11

account 4105192

saurav.kumar1@tatasteel.com

FA163E8EAB031EE5AE860E0E5FDF22C9

?id=ded64d1a54f7cc3420b8687bb7792067&type=note

输入文字,用box-shadow生成文字


2016-01-12

task id: 31454

campaign: C-00000031

image.pngtask function0有campaign

CRMT_ODATA_TASK_DOC_HISTORY

CRMT_ODATA_DOC_HISTORY

CRMT_ODATA_TASK_DOC_HIST_INCL

CRMT_ODATA_DOC_HIST_INCL

IT_KEY_TAB /IWBEP/T_MGW_NAME_VALUE_PAIR

CT_ENTITYSET ANY TABLE

DocumentHistory


TYPE CL_CRM_TASK_MPC=>TT_DOCUMENTHISTORY

CRMT_ODATA_DOC_HISTORY_T


2016-01-13

task 31362 has two histories

31363 has 3 histories

/IWFND/GW_CLIENT Millisecond

interface note: 382817

content note: 493852

/IWFND/TRACES

Measure the performance of your OData service: http://scn.sap.com/community/gateway/blog/2016/01/13/measure-the-performance-of-your-odata-service

e/?id=db2780fb6ada3889e1a9b9f6317ab806&type=note

object Color extends Enumeration {

val Red, Yellow, Green = Value

}

def f(x:Int) = if ( x > 2 ) Some(x) else None

val l = List(1,2,3,4,5)

/sap/opu/odata/sap/CRM_ODATA/TaskCollection?KaTeX parse error: Expected 'EOF', got '&' at position 24: …sMyTask eq true&̲expand=DocumentHistories

40F2E963AFAA1ED49B802B5CA914031E

opp 2035 has one product, guid: FA163EE56C3A1EE5A6C8C7002E57FF2C

2016-01-14

re/?id=27e4548f5f6ba026ea63b1317958e1f1&type=note

Implicit parameter pass in Scala : http://scn.sap.com/blogs/i042416/2016/01/14/implicit-parameter-pass-in-scala

e.youdao.com/share/?id=5b12b41eef055e2297c629001cabf575&type=note

BUS2000125:task

task guid: FA163EE56C3A1ED5AE9AE011B059611E

AG3/815 TR: AG3K156203

unit test fail: FA163E8EAB031EE5AE863B82D458835B - no doc history found?

2016-01-16

Isometric Contributions

一个小玩意,可以让你在GitHub上的commit像盖楼一样的展示,很有趣,展示下Android大神Jake Wharton的commit情况。

Octotree

这个可就屌了,当我们在浏览别人的开源代码时,还要clone下来一个文件查看,而有了这个插件,你可以直接在Chrome侧边栏向打开文件夹一样的查看别人的项目,简直了。给

大家看下查看我的开源项目的正确方式。

2. http://www.iteblog.com/archives/1508 done

http://blog.csdn.net/jason5186/article/details/43763847 done

http://developer.51cto.com/art/201009/226142_3.htm done


正如我们在前面的章节所描述的,一个静态类型的语言在一个变量的生命周期内都会绑定一个类型。相反的,动态类型的语言则是根据变量所引用的值来绑定类型,这意味着变量

的类型可以随着它引用的值改变而改变。

在最新的基于JVM 的语言中,Scala 是为数不多的静态类型语言,而且是最出名的一个


http://developer.51cto.com/art/201009/226142_4.htm done

http://blog.csdn.net/zl3450341/article/details/31387593 done

http://www.51testing.com/html/55/n-243955.html done

http://www.ibm.com/developerworks/cn/java/j-scala05298.html done


2016-1-18

12:55PM

/IWCOR/CL_DS_EP_FACADE

2016-01-18 17:05PM - 惰性加载。在 HTML 文件中将需要惰性加载的图片的 src 属性置为一个相同的地址(一般设置为一张 loading 图),这样这张图只会加载一次(第二次

即会读取缓存),或者干脆置为空(用户体验不好),将真实的图片地址存储在别的属性中(比如 data-original 属性)

监听事件(比如 scroll 事件),判断需要惰性加载的图片是否已经在可视区域,如果是,则将 src 属性替换成 data-original 属性值

JavaScript代码中执行另一段JavaScript代码时,都会导致双重求值的性能消耗

JavaScript原生部分在你写代码前就已经存在在浏览器中了,并且都是用底层语言写的,诸如C++。这意味着这些方法会被编译成机器码,成为浏览器的一部分。

要抓取走 HTTPS 的 JS 内容,Fiddler 必须解密 HTTPS 流量。但是,浏览器将会检查数字证书,并发现会话遭到窃听。为了骗过浏览器,Fiddler 通过使用另一个数字证书重新

加密 HTTPS 流量。Fiddler 被配置为解密 HTTPS 流量后,会自动生成一个名为 DO_NOT_TRUST_FiddlerRoot 的 CA 证书,并使用该 CA 颁发每个域名的 TLS 证书。若

DO_NOT_TRUST_FiddlerRoot 证书被列入浏览器或其他软件的信任 CA 名单内,则浏览器或其他软件就会认为 HTTPS 会话是可信任的、而不会再弹出“证书错误”警告。

因为alert的结果是个string,所以会自动调用toString方法

http://scn.sap.com/people/alessandro.spadoni

Alessandro Spadoni

http://scn.sap.com/community/developer-center/front-end/blog/2015/10/28/switch-openui5-version-on-the-fly-without-changing-the-code

Switch #openui5 version on-the-fly without changing the code - Web Debugging Proxy

JavaScript, sapui5, sap_ui5, ui5, fiddler, openui5, web_proxy, javascript_debugging, tip, beginner, framework_code, pretty_print

Use Fiddle to make modifications on framework js file: http://scn.sap.com/community/developer-center/front-end/blog/2016/01/18/use-fiddle-to-make-

modifications-on-framework-js-file

roletype descrp

CRMT_MKTPL_CTYPT_TAB

task id: 31454

campaign: C-00000031

2016-01-19

http://www.cnblogs.com/zichi/p/5020960.html - Jerry ********* 今天从这开始。done jsconsole

jsconsole demo: http://jsconsole.com/remote-debugging.html done

http://www.cnblogs.com/zichi/category/617797.html base64 done

leetcode: http://www.cnblogs.com/zichi/category/721233.html

http://www.cnblogs.com/zichi/p/5107820.html 他的KPI

http://www.cnblogs.com/zichi/p/5111159.html html和htm的区别 done

tool:http://www.cnblogs.com/zichi/category/702975.html markdown

正则:http://www.cnblogs.com/zichi/p/4343009.html ------------------- 正则表达式

var pattern = /1{3}$/;

var str = “真的吗”;

console.log(pattern.test(str));

?id=4c0385058b6724f946f7813dea86221f&type=note

task id: 29944

JsEndTime – JsStartTime = js文件的加载时间,对吗?

不对!明显地,这个等式忽略了js的执行时间。js执行代码是需要花费时间的,特别是做一些复杂的计算或频繁的dom操作,这个执行时间有时会达到几百毫秒。

那么,JsEndTime – JsStartTime = js文件的加载执行时间?

什么是partial function

http://my.oschina.net/leejun2005/blog/405305 - 下划线用途

14:28 start 14:43 highlevel view讲完。14:48PM finish

order之后遇到问题,和agent交互

core service - CEC business service - 基于core service第一层封装 ,比如ticket service, mashup service ,coreservice - 平台提供

ECF - SAP收购的一家video公司

mashup - 混搭, 嵌入第三方已经有的服务

Scala的本质: http://my.oschina.net/aiguozhe/blog/34295


2016-01-20

http://www.cnblogs.com/xuning/tag/leetcode.com/

向右移一位,和原来的数做或的位运算。基准前提,一个数的最高位肯定为1,因此

1010 右移一位

0101 - 此时最高位跑到从左边数第二位了。

因此做|运算,肯定可以把次高位也变成1

1111 - 此时前面两位都是1了。n=1111

再右移两位,

1111

0011

->

1111 再右移四位

最后再加1,

10000

第一组传统。用户从网站下载,集成到outlook里。cross platform。定期更新。partner可做扩展。

cloud deliver。

online 。提交请求看结果。

architecture driver。

因为题目中有说是unsigned int32的整数,所以要用有符号右移>>>来操作符号位。???

异或的原理是奇数个1才为1,偶数个1(2个1或者0个1)都为0,所以最后异或的结果,如果为1,证明有奇数个1,否则为偶数个1.

12->1100

右移1位,可以搞定最后2位,右移2位,搞定最后四位。分组的思想。

0110(右移之后)

1100 按位异或

1010 - 10进制为10,相邻2位有1个1。

12345往右移16位之后,全32位变成0了,最后结果为0

0011 0000 0011 1001 12345,左移16位。

0011 0000 0011 1001 0000 0000 0000 0000 :

Facet Precision not applicable for EDM type Edm.guid

可以通过与掩码做或运算设置标志位,掩码中为 1 的位可以设置对应的位。例如掩码 1100 可用来设置位 C 和 D:(核心就是将某位变为1 )

// 我们有 banana 和 pear

var mask = FLAG_C | FLAG_D; // 0100 | 1000 => 1100

flags |= mask; // 0101 | 1100 => 1101

可以通过与掩码做与运算清除标志位,掩码中为 0 的位可以设置对应的位。掩码可以通过对原语掩码做非运算得到。例如,掩码 1010 可以用来清除标志位 A 和 C :(核心就

是将某位变为0)

http://www.cnblogs.com/zichi/p/4794602.html 【位运算经典应用】 求二进制逆序 done

http://www.cnblogs.com/zichi/p/4798233.html - 位运算大全。

http://www.cnblogs.com/zichi/p/4806998.html 神奇的树状数组

http://www.cnblogs.com/zichi/p/5107442.html 还是leetCode

http://www.cnblogs.com/zichi/category/721233.html leetcode

0011 0000 0011 1001

-1000 0000 0000 0000 0000 0000 0000 0000

.MLE(Memory Limit Exceeded),超出空间限制。是各个信息学在线评测系统的常用名词。在线评测系统中的题目中每个测试数据都有空间限制,一般来说为280M。选手需把握好时

间和空间的平衡点,以免因超出空间限制或超出时间限制而丢分。

re/?id=638aa4a2ce497fa40ce4d234c3770e5a&type=note

java wiki: http://wiki.scn.sap.com/wiki/pages/viewpage.action?pageId=35057


2016-01-21

从后往前找,找到一个

2016-01-25

role_type TYPE roletype

without attachment with attachment

5.9 8.8

6.0 7.9

4.4 9.2

4.8 7.9

4.0 8.0

7.0 7.9

4.2 7.9

are/?id=c331c782aec6553ca8d3b2e63ad5f9e7&type=note

TraversableOnce

def toList: List[A] = to[List]

“\10.56.194.65\Temp\Jerry\IMG_2610.MOV”

task with attachment: FA163EE56C3A1ED5AE9AE011B059611E 但是已经complete了。

FA163EE56C3A1EE5AD89008F1DBB0B45

从DB取出来的link 如果是folder,那么就是folder的guid。

还需要call 额外的api从folder里取出文件

CA_OBL_BINREL

image.pngIT_OBJECTS LTTY_OBJECT_KEY

RT_LINKS_A OBL_T_LINK

L/CRM_L_ORD/FA163EE56C3A1EE5AFCAF9FF31FFFE64


2016-01-27

SIBFTYPEID

BEGIN OF lty_object_key,

instid TYPE sibfboriid,

typeid TYPE sibftypeid,

skwf_ios,

?id=f04e3e2fcdf78603c63eadd2c152a72c&type=note

?id=f953cf11845cd3ab28fba70ce33c8b0c&type=note

tt_order_atta_link

et_ios TYPE skwf_ios,

lt_property_result TYPE CRM_KW_PROPST,

lt_file_access_info TYPE SKWF_CPPRPS,

<property_result>

CRMT_ODATA_TASK_ATTACHMENTT

changing lt_loios TYPE skwf_ios,

type SDOKLOGPHYS

LTTY_OBJECT_KEY

CRMT_ODATA_TASK_ATTACHMENTT

29511.25

2016-01-28

violatile in Scala guid:FA163EE56C3A1EE5AEB430A74813748A

id:31455

IV_USER_NAME: bapibname-bapibname

iv_fullName: AD_NAMTEXT

CRMURLPHF

d=51722501df7495d9c0797f6369007f39&type=note

=545e3e74b2cb598c69d00cf79dc045b0&type=note

Isometric Contributions

share/?id=8cbfa986f6af521d5d4496ebac6c2a62&type=note

BEGIN OF lty_object_key,

instid TYPE sibfboriid,

typeid TYPE sibftypeid,

END OF lty_object_key .

types:

ltty_object_key TYPE TABLE OF lty_object_key .


2016-01-29

ATTACHMENTS

expand name: ATTACHMENTS

typeid TYPE sibftypeid,

Tasks(guid’FA163EE5-6C3A-1EE5-A5E6-73B95A344AC5’)/Attachments

CRMT_BP_ODATA_ATTACHMENT


Explicit or implicit index operations cannot be used on tables with type ANY TABLE.

lt_task1 TYPE zcrm_task_attachment_t,

lt_bp1 TYPE zcrm_bp_attachment_t,

/share/?id=7b849a94d307b95ca527b715538c18a3&type=note

CRM_ORDER_CHECK_BEFORE_SAVE_OW


2016-01-31

lt_iplinks TYPE sdoklogphys,

lt_property_result TYPE crm_kw_propst,

lt_file_access_info TYPE skwf_cpprps.

SIBFTYPEID

DATA(lv1) = ls2(3).

WRITE: / lv1.

The specified length “20” exceeds the length of the character-like

initial part (=10) of the structure. This is not allowed in Unicode

u4e00-\u9fa5|/w ↩︎




相关实践学习
日志服务之使用Nginx模式采集日志
本文介绍如何通过日志服务控制台创建Nginx模式的Logtail配置快速采集Nginx日志并进行多维度分析。
相关文章
|
机器学习/深度学习 编解码 iOS开发
【Tech】啥是DeepFusion?看完这篇你就懂了!
【Tech】啥是DeepFusion?看完这篇你就懂了!
1370 0
【Tech】啥是DeepFusion?看完这篇你就懂了!
|
Web App开发 JavaScript 前端开发
Jerry Wang的SAP工作日志 - 2016年1月
Jerry Wang的SAP工作日志 - 2016年1月
122 0
「SAP技术」SAP 如何看序列号被包在哪些HU里?
「SAP技术」SAP 如何看序列号被包在哪些HU里?
「SAP技术」SAP 如何看序列号被包在哪些HU里?
Jerry 2016年5月20日到5月23日的学习笔记
研究了Query view的数据读取逻辑,学习了针对一个复杂的scenario,如何通过自己开发一个简单的report + SAT的方式,
Jerry 2016年5月20日到5月23日的学习笔记
Jerry Wang进行SAP CRM One Order标准开发的一些笔记
Jerry Wang进行SAP CRM One Order标准开发的一些笔记
106 0
Jerry Wang进行SAP CRM One Order标准开发的一些笔记
|
测试技术
Jerry开发的SAP note工具
Jerry开发的SAP note工具
142 0
Jerry开发的SAP note工具
|
Web App开发 存储 Java
Jerry眼中的SAP客户数据模型
Jerry眼中的SAP客户数据模型
118 0
Jerry眼中的SAP客户数据模型
|
SQL 监控 JavaScript
Jerry的ABAP原创技术文章合集
我之前发过三篇和ABAP相关的文章:
156 0
Jerry的ABAP原创技术文章合集
Jerry制作的软件工程里Design for Change的培训材料
Jerry制作的软件工程里Design for Change的培训材料
86 0
Jerry制作的软件工程里Design for Change的培训材料
|
搜索推荐 程序员
Jerry 2017年的五一小长假:8种经典排序算法的ABAP实现
Jerry 2017年的五一小长假:8种经典排序算法的ABAP实现
Jerry 2017年的五一小长假:8种经典排序算法的ABAP实现