[Oracle ADF] Bindings Layer > action


Примеры вызова OperationBinding

В bindigs создаем action типа Commit, Rollback, Execute с одноименными названиями

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
private String commit = "commit";
private String rollback = "Rollback";
private String execute = "Execute";

private String executeWithParams = "ExecuteWithParams";
private String myParam1 = "myParam1";
private String myParam2 = "myParam2";


private void commit() {
    DCBindingContainer bindings = (DCBindingContainer) BindingContext.getCurrent().getCurrentBindingsEntry();
    OperationBinding operationBinding = bindings.getOperationBinding(commit);
    operationBinding.execute();

    // Наверное, лучше сразу попробовать такое
    // ADFUtils.findOperation(commit).execute();
}

private void rollback() {
    DCBindingContainer bindings = (DCBindingContainer) BindingContext.getCurrent().getCurrentBindingsEntry();
    OperationBinding operationBinding = bindings.getOperationBinding("rollback");
    operationBinding.execute();
}

private void execute() {
    DCBindingContainer bindings = (DCBindingContainer) BindingContext.getCurrent().getCurrentBindingsEntry();
    OperationBinding operationBinding = bindings.getOperationBinding(execute);
    operationBinding.execute();
}

private void executeWithParams() {
    DCBindingContainer bindings = (DCBindingContainer) BindingContext.getCurrent().getCurrentBindingsEntry();
    OperationBinding operationBinding = bindings.getOperationBinding(executeWithParams);

    operationBinding.getParamsMap().put("my_param1", myParam1);
    operationBinding.getParamsMap().put("my_param2", myParam2);


    // Если нужно передать null. Можно попробовать выполнить это следующей командой.
    // Я пытался передавать null, "null", вообще не выполнять эту команду, но получилось только следующим образом.

    // operationBinding.getParamsMap().put("my_param2", "");


    Object result1 = operationBinding.execute();

    if(!operationBinding.getErrors().isEmpty()){
            System.out.println("Error");
        }  else {
            System.out.println("Success");
    }
}

this.commit();
this.rollback();
this.execute();
this.executeWithParams();


Еще пример с использованием ADFUtils:


1
2
3
4
OperationBinding getTaskoperation = ADFUtils.findOperation("ExecuteWithParams");
getTaskoperation.getParamsMap().put("myParam1", "myValue1");
getTaskoperation.getParamsMap().put("myParam2", "myValue2");
Object result = getTaskoperation.execute();


И еще у меня осталось в закладках:

http://matteoformica.blogspot.ru/2014/02/executing-operation-binding.html