Senaryo :

Verilen teklifi onaylayarak ilgili depo sorumlusu için görev oluşturalım.

Örnekler diadevdays sunucusu üzerinde çalışmaktadır.

Örnek Kod (python):


# coding=utf-8
import simplejson
import base64
import urllib2
from datetime import datetime
from pprint import pprint

wsAdresMain = 'https://diadevdays.ws.dia.com.tr/api/v3/'
firma_kodu = 4
donem_kodu = 1
apikey = "773f9085-9dc8-4f50-b34d-f7b56da33b5f"


def callWs(wsAdres, postBody):

    try:
        postBody = simplejson.dumps(postBody, cls=simplejson.JSONEncoder)
        req = urllib2.Request(wsAdres,
                          data=postBody,
                          headers={"Content-Type": "application/json"})
        content = urllib2.urlopen(req).read()
    except Exception, e:
        print("Exception: {}".format(repr(e)))

    wsResult = simplejson.loads(content)
    return wsResult

loginBody = {"login" :
            {"username": "ws",
             "password": "ws",
             "disconnect_same_user": True,
             "lang": "tr", 
             "params": {"apikey": apikey}
            }
        }

loginResult = callWs(wsAdresMain + 'sis/json', loginBody)
sessionID = loginResult['msg']

if not sessionID:
    print("Login yapilamadi")
    exit(0)

teklifNo = raw_input("Teklif fis numarasini giriniz: ")
if not teklifNo:
    print("Teklif fis numarasi girilmelidir!")
    exit(0)
    
teklifListeleBody = {"scf_teklif_listele" :
            {"session_id": sessionID,
             "firma_kodu": firma_kodu,
             "donem_kodu": donem_kodu,
             "filters":[{"field": "fisno", "operator": "=", "value": teklifNo}],
             "sorts": "",
             "params": "",
             "limit": 1,
             "offset": 0
            }
        }

teklifListeResult = callWs(wsAdresMain + 'scf/json', teklifListeleBody)
teklifBilgi = teklifListeResult['result'][0]
teklifOnayBody = {"scf_teklif_onayla" :
        {"session_id": sessionID,
         "firma_kodu": firma_kodu,
         "donem_kodu": donem_kodu,
         "key": [teklifBilgi['_key']],
         "params": {"durum": "KABUL"}
        }
    }

teklifOnayResult = callWs(wsAdresMain + 'scf/json', teklifOnayBody)
if teklifOnayResult['code'] == "200":
    pprint(teklifOnayResult)

    gorevNoGetirBody = {"sis_numara_getir" :
            {"session_id": sessionID,
             "firma_kodu": firma_kodu,
             "donem_kodu": donem_kodu,
             "table_name": "gts_gorev",
             "column_name" : "gorevno",
             "template_type": "GTS_GOREVNO",
             "tarih": datetime.now().strftime('%Y-%m-%d'),
             "statu": 1
            }
        }

    gorevNoGetirResponse = callWs(wsAdresMain + 'sis/json', gorevNoGetirBody)
    gorevNo = gorevNoGetirResponse['result']['kod']
    print(gorevNo)

    kullaniciAdi = raw_input("Depo sorumlusu adini giriniz: ")

    kullaniciListeBody = {"sis_kullanici_listele" :
        {"session_id": sessionID,
        "firma_kodu": firma_kodu,
        "donem_kodu": donem_kodu,
         "filters":[{"field": "kullaniciadi", "operator": "=", "value": kullaniciAdi}],
         "sorts": "",
         "params": {"selectedcolumns": ["_key", "kullaniciadi"]},
         "limit": 1,
         "offset": 0
        }
    }

    kullaniciListeResponse = callWs(wsAdresMain + 'sis/json', kullaniciListeBody)
    pprint(kullaniciListeResponse)
    kullaniciKey = kullaniciListeResponse['result'][0]['_key']

    gorevEkleBody = {"gts_gorev_ekle" :
            {"session_id": sessionID,
             "firma_kodu": firma_kodu,
             "donem_kodu": donem_kodu,
             "kart":
                      {
                      "_key_gts_gorev_surec": {"aciklama": "Teklif Kabul"},
                      "_key_gts_gorev_tipi": {"kodu": "002"},
                      "_key_scf_carikart": teklifBilgi['_key_scf_carikart'],
                      "_key_scf_satiselemani": teklifBilgi['_key_scf_satiselemani'],
                      "aciklama": "%s fiş nolu teklife bağlı görev" % teklifNo,
                      "durum": "A",
                      "gorevno": gorevNo,
                      "ilgilikullanicikeys": [kullaniciKey],
                      "iliskiligorevkeys": [],
                      "note": "%s fiş nolu teklif onaylanmıştır." % teklifNo,
                      "oncelik": 1,
                      "planlamadurumu": "H",
                      "tahminisuresaat": "0.00",
                      "takipcikullanicikeys": [kullaniciKey],
                      "m_notlar": [],
                      "m_belgeler": [{"_key_belge": teklifBilgi['_key'],
                                      "belgeturu": 1,
                                      "aciklama": "Satış teklifi"}]
                      }

            }
        }

    gorevEkleResponse = callWs(wsAdresMain + 'gts/json', gorevEkleBody)
    pprint(gorevEkleResponse)