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

  1. 9:11AM开始quiz 50.
class type2{
}
(new Type2() instanceof String)
Type3 t3 = (Type3) new Object();
class Point51 {
    protected final int x, y;
    private final String name; // cached at construction time
    Point51( int x, int y){
       this.x = x;
       this.y = y;
       name = makeName();
    }
  
    protected String makeName() {
       return "[" + x + "," + y + "]";
    }
    
    public final String toString() {
       return name;
    }
}
public class ColorPoint extends Point51 {
      private final String color; 
      ColorPoint( int x, int y, String color){
        super(x,y);
        this.color = color;
     }
     protected String makeName(){
        return super.makeName() + ":" + color;
     }
      
public static void main(String[] args) {
System.out.println(new ColorPoint51(4,2, "Purple"));

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

static {
  initializeIfNecessary();
}
private static int sum;
public static int getSum(){
   initializeIfNecessary();
   return sum;
}
private static boolean initialized = false;
private static void initializedIfNecessary() {
   if( !initialized){
      for( int i = 0; i < 100; i++)
         sum += i;
      initialized = true;
   }
 }
}

Cache类有两个静态初始器,顶端的一个static语句块,以及静态域initialized的初始化。
如果初始化代价较高,或者该域在某些执行中不会被用到,那么惰性初始化适用。

private static final int sum1 = computeSum();
class Thing{
     public Thing(int i ){ }
}
private final int arg;
public Thing53(){
  super(arg = 1);
}
Alternate constructor invocation - Private Constructor Capture
class Null54 {
  public static void hello(){
      System.out.println("hello");
  }
}

在静态方法调用中,适用表达式作为其限定符不是好主意。表达式的值所引用的对象的运行期类型在确定哪一个方法被调用时不起任何作用。静态方法调用的限定表达式是可以计算的,但是值将被忽略,没有任何要求其值为空的限制。
Java不允许一个本地变量声明语句作为一条语句在for,while或do 循环中重复执行。只能直接出现在一个语句块中。

AtomicLong numCreated = new AtomicLong();
}
BigInteger fivek = new BigInteger("5000");
BigInteger total = fivek.add(new 
int vals[] = {789,678,567,456,345,234,123,012};
Set diffs = new HashSet();
for( int i = 0; i < vals.length; i++)
   for( int j = i; j < vals.length; j++) 
      diffs.add(vals[i] - vals[j]);
System.out.println(diffs.size());
Thread.currentThread().interrupt();
if( Thread.interrupted()){
   System.out.println("Status:" + Thread.interrupted());
}
public class85 {
  private static boolean initialized = false;
  static {
      Thread t = new Thread(new Runnable(){
           public void run(){
              initialized = true;
          } 
       });
   t.start();
   try{
     t.join();
   } catch(InterruptedException e){
     throw new AssertionError(e);
      }
}
System.out.println(initialized);

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

  1. 该类尚未被初始化
  2. 该类正在被当前线程初始化,这厮对初始化的递归请求。
  3. 该类正在被其他线程而不是当前线程初始化
  4. 该类已经被初始化
    后台线程执行run方法,将initialized 设置为true之前,回去检查Lazy类是否已经被初始化。这个时候,这个类正在被另外一个线程初始化,即情况3, 于是当前线程,即后台工作线程会等待class对象直至初始化完成。那个正在进行初始化工作的线程,即主线程,正在等待着后台线程运行结束。死锁。
public static
private static Thread t = new Thread( new Runnable() {
     public void run(){
         initialized = true;
     }
 });
static { 
  t.start();
}
最好的办法就是不要在类进行初始化时启动任何后台线程。或者让主线程再等待后台线程之前就完成类的初始化。
int类型的负数常量都是由正数十进制字面常量前加一元负操作符-构成。

等价关系:自反,传递,对称。
==不是自反。Double.NaN == Double.NaN不成立。
当比较两个原始类型数值时,==首先进行二进制数据类型提升 - binary numeric promotion, 会导致两个数值中有一个会进行拓宽原始类型转换 - widening primitive conversion. 将int或者long转换成float,或者long转换成double时,会导致精度丢失。
实现不可传递性:
选择两个较大的但不相同的long型数值赋给x和z,将一个与前面两个long型数值相近的double型数值赋给y。==作用于原始类型时具有不可传递性。

long x = Long.MAX_VALUE;
double y = (double)Long.MAX_VALUE;
long z = Long.MAX_VALUE - 1;
System.out.println( ( x==y) + ""); // true
System.out.println( ( y==z) + ""); // true
System.out.println( ( x==z) + ""); // false
public class Pair88<T> {
   private final T first;
   private final T second;
   public Pair88(T first, T second) {
       this.first = first;
       this.second= second;
   }
   public T first() {
       return first;
   }
   public T second() {
       return second;
   }
   public List<String> stringList() {
      return Arrays.asList(String.valueOf(first), String.valueOf(second));
   
Pair p = new Pair<Object>(23, "Jerry");
   public static 
System.out.println(p.first() + " - " + p.second());
for( String s: p.stringList())
     System.out.println(s + ",");

一个原生类型就是一个没有任何类型参数的泛型类的名字。List是泛型接口,List是参数化的类型,List是一个原生类型。一个原生类型的所有势力成员都要被替换掉,在一个实例方法声明中出现的每个参数化的类型都要被其对应的原生部分所取代。
变量p是属于原生类型Pair,所以其所有实例方法都要执行这种擦除。包括声明返回List的方法stringList. 编译器会将这个方法解释为返回原生类型List。
参数化类型List虽然是方法stringList的返回类型,但它与Pair88的类型参数没有关系,事实上最后被擦除了。
每次调用getAnnotation方法时都会涉及到两个Class对象。

  1. 在其上调用该方法的对象 - 通过反射获得
  2. 作为传递参数指出需要哪个类的注解的对象 - 类名称字面常量。

2015-01-04

  1. 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
CL_virus_adapter
static<E> List<E> withoutDuplicated(List<E> original) {
     return new ArrayList<E>( new LinkedHashSet<E>(original));
}
static String[] parse(String string) {
    return string.split(", \\S*");
}
Calendar cal = Calendar.getInstance();
cal.set(1999, Calendar.DECEMBER, 31);
System.out.println(cal.get(Calendar.YEAR) + " " );
System.out.println(cal.get(Calendar.DAY_OF_MONTH));
class LinkedList<E> { 
  private Node<E> head = null;
  private class Node<E> {
      E value;
      Node<E> next;
    
   Node(E value) {
      this.value = value;
      this.next = head;
      head = this;
    }
}

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

private class Node {
   E value;

```java
   Node next;
   Node(E value) {
      this.value = value;
      this.next = head;
      head = this;
   }
}
public void add(E e){
      new Node(e);
}
public void dump() {
  for( Node n = head; n != null; n = n.next)
     System.out.println(n.value + " " );
}
LinkedList<String> list = new LinkedList<String>();
list.add("world");
list.add("hello");
list.dump();

一个非静态的嵌套类的构造器,在编译时会将一个隐藏的参数作为它的第一个擦数,这个参数表示了它的直接外围实例( 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.

Sub sub = new Sub(666);
sub.checkInvariant();
Sub copy = (Sub) deepCopy(sub);
copy.checkInvariant();
static public Object deepCopy(Object obj) {
    try{
      ByteArrayOutputStream bos = new ByteArrayOutputStream();
      ByteArrayInputStream bin = new ByteArrayInputStream(bos.toByteArray());
      return new ObjectInputStream(bin).readObject();
    } catch(Exception e) {
    }    
class Super implements Serializable { 
    final Set<Super> set = new HashSet<Super>();
}
final class Sub extends Super {
      private int id;
      public Sub(int id) {
         this.id = id;
         set.add(this);
      }
      public void checkInvariant(){
        if(!set.contains(this))
           throw new AssertionError("invariant violated");
      }
      public int hashCode(){
         return id;
      }
      public boolean equals(Object o ) {
         return ( o instanceof Sub) && ( id == ((Sub)o).id);
    }
}
new ObjectOutputStream(bos).writeObject(obj);

序列化系统会反序列化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被序列化,必须确认其北荣没有直接或间接地引用到它们自身。

private final String name;
Twisted92(String name) {
     this.name = name;
}
private String name() {
    return name;
}
private void reproduce() {
    new Twisted92("reproduce") {
      void printName() {
        System.out.println(name());
      }
   }.printName();
}
new Twisted92("main").reproduce();

所有的本地,内部,嵌套和匿名的类都可以毫无限制的访问彼此成员。
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

  1. 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:
  2. Customer COULD NOT reproduce this issue in their laptop via Chrome;
  3. Customer COULD reproduce this issue in their mobile device using:
    a. Fiori Client
    b. Safari browser
  4. 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.
  5. 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”
?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

  1. ZCRM_TASK_0001
    2016-01-07
  2. key a: FA163EE56C3A1EE5AD89008F1DBB0B45
  3. 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
    LOOP AT lt_orderadm_i_wrk ASSIGNING .
          lv_objkey = -guid.


          INSERT lv_objkey INTO TABLE lt_objkey.
        ENDLOOP.
*       header item relations -> first access SRELROLES directly to check whether there are relations for Sales Order items
        SELECT objkey objtype logsys
          FROM srrelroles
          INTO TABLE lt_bor_object
          FOR ALL ENTRIES IN lt_objkey
          WHERE objkey = lt_objkey-table_line.

re/?id=9d45783d487f9949595a681cfa623c5a&type=note

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

Standardized Technical Architecture Modeling TAM

2016-01-09

.catListTag ul li:hover {
    background: #ff5e52;
    cursor: pointer;
    color: #fff;
}

cd 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

  1. account 4105192

[email protected]
FA163E8EAB031EE5AE860E0E5FDF22C9
?id=ded64d1a54f7cc3420b8687bb7792067&type=note
输入文字,用box-shadow生成文字

2016-01-12

  1. task id: 31454
    campaign: C-00000031
def testFunctionArgument2(code :() => Unit){
     println("start")
     code() // 必须写成code(), 显式调用传入的函数
     println("end")
}
testFunctionArgument2{
  println("when evaluated")
  println("bb")India: 000 8001007702
India, Bangalore: +91 80 6127 5055
}

task 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

  1. 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

  1. 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

  1. 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

  1. 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
  2. task id: 31454
    campaign: C-00000031

2016-01-19

  1. 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
  2. leetcode: http://www.cnblogs.com/zichi/category/721233.html
  3. http://www.cnblogs.com/zichi/p/5107820.html 他的KPI
  4. http://www.cnblogs.com/zichi/p/5111159.html html和htm的区别 done
  5. tool:http://www.cnblogs.com/zichi/category/702975.html markdown
  6. 正则: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

  1. 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可做扩展。
  2. cloud deliver。
  3. 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

  1. 从后往前找,找到一个

2016-01-25

  1. 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”
  2. task with attachment: FA163EE56C3A1ED5AE9AE011B059611E 但是已经complete了。
  3. FA163EE56C3A1EE5AD89008F1DBB0B45
    从DB取出来的link 如果是folder,那么就是folder的guid。
    还需要call 额外的api从folder里取出文件
    CA_OBL_BINREL
SELECT brelguid AS os_oid
                 instid_a typeid_a logsys_a catid_a arch_a
                 instid_b typeid_b logsys_b catid_b arch_b
                 reltype utctime homesys
             APPENDING CORRESPONDING FIELDS OF TABLE lt_links
             FROM (-dbtable)
             FOR ALL ENTRIES IN lt_reltype
             WHERE instid_a  = -bpor-instid AND
                   typeid_a      = -bpor-typeid AND
                   catid_a  = -bpor-catid AND
                   logsys_a    = -bpor-logsys AND
                   reltype  = lt_reltype-reltype
lt_links  TYPE typ_db_data_tab,

IT_OBJECTS LTTY_OBJECT_KEY
RT_LINKS_A OBL_T_LINK
L/CRM_L_ORD/FA163EE56C3A1EE5AFCAF9FF31FFFE64

2016-01-27

  1. 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,

    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

  1. 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

  1. 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

  1. u4e00-\u9fa5|/w ↩︎

你可能感兴趣的:(SAP,ABAP,Java,JavaScript,Fiori,开源)