Menü seçeneklerinin GetExtensions metodu ile dönülmesi gerekmektedir.
Metoda request olarak aşağıdaki gibi bir JSON string’i gelir.
{
"appNr" : 13,
"userNr" : 1,
"firmNr" : 1,
"langNr" : 1
}
App isterse bu bilgilere göre menülerini değiştirebilir.
Menülerle ilgli yetki kontrolunu kendisinin yapması gerekmektedir.
Menü seçeceğı seçildiğinde ExecuteAction olayı çağrılmaktadır.
Response olarak aşağıdaki alanları içeren bir array dönülmelidir.
type |
|
tag | Pluginin kendi kullanacağı değer, kendi içinde tekil olmalı |
name | Menu açıklaması |
image | Bade64 PNG image |
parentprogid | Eğer APP’e bağlı ait alt modulse, bağlı olduğu APP’e ait progid |
parentid | Bağlı bulundupu parent’e ait id. |
Aşağıda tüm istekler için örnek metod bulunmakta:
function TPlugin1.GetExtension(const request: WideString): WideString;
var
ASuper: ISuperObject;
begin
ASuper:=SO(request);
Result:=
'['+
' { '+
' "type" : 1,'+
' "tag" : 1,'+
' "name" : "Deneme Plugin Menu",'+
' "image" : "'+ Icon_Image + '"'+
' },'+
' { '+
' "type" : 2,'+
' "tag" : 2,'+
' "parentprogig": "",'+
' "parentid": 130,'+
' "name" : "Hizli Veri Giriş Alt Menu",'+
' "image" : "'+ Icon_Image + '"'+
' },'+
' { '+
' "type" : 2,'+
' "tag" : 3,'+
' "parentprogid": "GoLib.Plugin1",'+
' "parentid": 1,'+
' "name" : "Deneme Plugin Alt Menu",'+
' "image" : "'+ Icon_Image + '"'+
' },'+
' { '+
' "type" : 3,'+
' "tag" : 4,'+
' "parentprogid": "GoLib.Plugin1",'+
' "parentid": 3,'+
' "name" : "Deneme İşlem Menusu",'+
' "image" : "'+ Icon_Image + '"'+
' },'+
//
' { '+
' "type" : 4,'+ // Popup, Browse Form
' "tag" : 5,'+
' "parentprogid": "",'+
' "parentid": 1001,'+
' "name" : "Deneme Popup İşlem Menusu-Browser-",'+
' "image" : "'+ Icon_Image + '"'+
' },'+
' { '+
' "type" : 5,'+ // Popup, Entry Form
' "tag" : 6,'+
' "parentprogid": "",'+
' "parentid": 1001,'+
' "name" : "Deneme Popup İşlem Menusu",'+
' "image" : "'+ Icon_Image + '"'+
' }'+
'] ';
end;
Bu şekilde tanımlandığında aşağıdaki gibi ekran olşuyor.
Popup menu seçeneği tıklandığında aşağıdaki JSON ExecuteAction Metoduna parameter olarak geçiliyor:
(ExecuteAction Metoduna type=3 çalıştırılabilir menü tıklandığında geliyor.)
{
"tag" : 5, --> APP tarafından verilen tag
"formData" : {}, -->Form üzerindeki alanların bilgisi, Browser formlarda boş
"gridCurLine" : 1, --Gridde seçili satır
"formId" : 1001, --> FormId
"type" : 4, --> Browser Form
"data" : 2 --> refId
}
Veri giriş ekranı:
Veri giriş ekranındaki popupmeü tıklandığında yine ExecuteAction olayı çağrılır.
{
"tag" : 6, --> Appin verdiği tag.
"formData" : {
"ITEM" : {
"EXTCRD_FLAGS" : "63",
"VAT" : "18",
"HOUR_CREATED" : "16",
"FACTORY_PARAMS" : "",
"PURCH_DEDUCTION_PART2" : "3",
"PURCH_DEDUCTION_PART1" : "2",
"WH_PARAMS" : "",
"SALE_DEDUCTION_PART2" : "3",
"SALE_DEDUCTION_PART1" : "2",
"DIST_LOT_UNITS" : "1",
"CHARACTERISTICS" : {
"CHARACTERISTIC" : {
"VCODE" : "",
"CCODE" : ""
}
},
"MIN_MODIFIED" : "23",
"RETURNPRVAT" : "18",
"QPRODS" : {
"QPROD" : {
"UUNIT" : "000,Merkez"
}
},
"HOUR_MODIFIED" : "11",
"USEF_PURCHASING" : "1",
"ALTERNATIVES" : {
"ITEM_SUBSTITUTE" : {
"MAIN_CODE" : "",
"END_DATE" : "31\/12\/2016",
"SUBS_CODE" : "",
"BEG_DATE" : "09\/09\/2016"
}
},
"COMB_LOT_UNITS" : "1",
"SELVAT" : "18",
"USEF_MM" : "1",
"PRODUCER_CODE" : "yyy",
"DATE_MODIFIED" : "09\/09\/2016",
"ORGLOGOID" : "",
"EXT_ACC_FLAGS" : "3",
"UNITSET_CODE" : "05",
"LOTS_DIVISIBLE" : "1",
"RETURNVAT" : "18",
"SEC_CREATED" : "55",
"MIN_CREATED" : "14",
"DATE_CREATED" : "25\/08\/2016",
"PACKET" : "0",
"AUTOINCSL" : "1",
"MODIFIED_BY" : "1",
"SUPPLIERS" : {
"SUPPLIER" : {
"UNIT_CODE" : "",
"UNITSET_CODE" : "",
"PACKET_CODE" : "",
"ORD_FREC" : "1"
}
},
"UNITS" : {
"UNIT" : ""
},
"DATA_REFERENCE" : "2",
"SELPRVAT" : "18",
"NAME" : "MLZ.2",
"DBOP" : "INS",
"CODE" : "000000000000000000000001",
"USEF_SALES" : "1"
"GL_LINKS" : [{
"INFO_TYPE" : "1
}, {
"INFO_TYPE" : "2"
}, {
"INFO_TYPE" : "3
}, {
"INFO_TYPE" : "4"
}, {
"INFO_TYPE" : "5
}, {
"INFO_TYPE" : "6
}, {
"INFO_TYPE" : "7"
}, {
"INFO_TYPE" : "8"
}, {
"INFO_TYPE" : "9"
}, {
"INFO_TYPE" : "10
}, {
"INFO_TYPE" : "11"
}, {
"INFO_TYPE" : "12
}, {
"INFO_TYPE" : "13"
}, {
"INFO_TYPE" : "14"
}, {
"INFO_TYPE" : "15
}, {
"INFO_TYPE" : "16"
}, {
"INFO_TYPE" : "17
}, {
"INFO_TYPE" : "18"
}, {
"INFO_TYPE" : "95"
}, {
"INFO_TYPE" : "96"
}, {
"INFO_TYPE" : "99"
}, {
"INFO_TYPE" : "110"
}, {
"INFO_TYPE" : "111"
}, {
"INFO_TYPE" : "119
}, {
"INFO_TYPE" : "135
}, {
"INFO_TYPE" : "136"
}, {
"INFO_TYPE" : "137
}, {
"INFO_TYPE" : "143"
}, {
"INFO_TYPE" : "162"
}, {
"INFO_TYPE" : "199"
}
],
"DOMINANT_CLASSES" : "",
"CREATED_BY" : "1",
"CARD_TYPE" : "1",
"COMPOSITES" : {
"COMPOSITE" : ""
},
"SEC_MODIFIED" : "55"
}
},
"gridCurLine" : -1, àListe ekranı olmadığı için
"formId" : 1001,
"type" : 5, à Veri giriş ekranı
"data" : 2 -- RefID
}