Senaryo :
Vade bakiye raporunu alıp, vadesi geçen tüm carilere e-posta gönderelim.
Örnekler diadevdays sunucusu üzerinde çalışmaktadır.
Örnek Kod (python):
# coding=utf-8 import simplejson import treq 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) raporTasarimBody = {"rpr_tasarimlar_listele" : {"session_id": sessionID, "firma_kodu": firma_kodu, "donem_kodu": donem_kodu, "filters":[{"field": "raporkodu", "operator": "=", "value": "scf1100b"}, {"field": "dil", "operator": "=", "value": "tr"}], "sorts": "", "params": "", "limit": 1, "offset": 0 } } tasarimResult = callWs(wsAdresMain + 'rpr/json', raporTasarimBody) tasarimKey = tasarimResult['result'][0]['_key'] raporSonucBody = {"rpr_raporsonuc_getir" : {"session_id": sessionID, "firma_kodu": firma_kodu, "donem_kodu": donem_kodu, "report_code":"scf1100b", "tasarim_key": tasarimKey, "param": {"hesaplamaturu": "Müşteri", "tarihreferans": datetime.now().strftime('%Y-%m-%d'), "tarihbitis": "2023-12-31", "erkenfaiz": "0", "gecfaiz": "0", "ustIslemTuruKeys": [], "_key_sis_sube": 0, "_key_muh_masrafmerkezi": 0, "_key_sis_doviz": 0, "bakiyesiolmayan": "True", "irsaliyeleriDahilEt": "False", "teslimolmamissiparisler": "False", "odenmeyentaksitler": "False", "teminatlarigoster": "False", "raporlamadovizinegorehesapla": "False", "vadesigecenhareketdetayigoster": "False", "vadesigelmeyenhareketdetayigoster": "False", "baeslemeilekapananlarihesaplama": "False", "malzemebaglantilari": "False", "vadesigecenbakiye1": 0, "vadesigecenbakiye2":999999999, "filtreler": [{"filtreadi": "carikartkodu", "filtreturu": "aralik", "ilkdeger": "AL001", "sondeger": "AL001", "serbest": "" }] }, "format_type": "json" } } raporSonucResult = callWs(wsAdresMain + 'rpr/json', raporSonucBody) raporSonuc = raporSonucResult['result'] raporSonucData = base64.b64decode(raporSonuc) raporSonucData = simplejson.loads(raporSonucData) pprint(raporSonucData) for raporSatir in raporSonucData['__rows']: if raporSatir.get('vadesigecentutar'): # mail gönder cariGetirBody = {"scf_carikart_getir" : {"session_id": sessionID, "firma_kodu": firma_kodu, "donem_kodu": donem_kodu, "key": raporSatir['_key_scf_carikart'], "params": {"selectedcolumns": ['eposta']} } } cariGetirResult = callWs(wsAdresMain + 'scf/json', cariGetirBody) print("*** cariGetirResult: ", cariGetirResult) cariEPosta = cariGetirResult['result']['eposta'] print("*** cariEPosta: ", cariEPosta) vadeEkstreBody = {"rpr_raporsonuc_getir" : {"session_id": sessionID, "firma_kodu": firma_kodu, "donem_kodu": donem_kodu, "report_code":"scf9014b", "tasarim_key": "0", "param": {"_key": raporSatir['_key_scf_carikart'], "hesaplamaturu": "Müşteri", "tarihreferans": "2023-05-25", "erkenfaiz": "0", "gecfaiz": "0", "ustIslemTuruKeys": [], "_key_sis_sube": 0, "_key_muh_masrafmerkezi": 0, "irsaliyeleriDahilEt": "False", "teslimolmamissiparisler": "False", "odenmeyentaksitler": "False", "teminatlarigoster": "False", "kapanmadurumunagoregrupla": "True", "baeslemeilekapananlarihesaplama": "False", "eslemelerigoster": "True", "eslenmeyenlerigoster": "False", "kapananlarigosterme": "False", "malzemebaglantilari": "False", "malzemeBaglantiKeys": [] }, "format_type": "pdf" } } vadeEkstreResponse = callWs(wsAdresMain + 'rpr/json', vadeEkstreBody) epostaGonderBody = {"sis_eposta_gonder" : {"session_id": sessionID, "firma_kodu": firma_kodu, "donem_kodu": donem_kodu, "sender": senderEmail, "cc": cariEPosta, "bcc": "", "subject": "Vade Ekstre Raporu", "body": "Rapor sonucunuz ektedir", "attachments": [{"base64data": vadeEkstreResponse['result'], "mime": "application/pdf", "name": "VadeEkstre" }] } } epostaGonderResult = callWs(wsAdresMain + 'sis/json', epostaGonderBody) print("E-posta gonderildi")