posfgit / standard

9 stars 13 forks source link

Clarificari suplimentare - utilizare API, fluxuri, mesaje, mod de lucru #69

Open ItSupportRenovatioTrading opened 2 years ago

ItSupportRenovatioTrading commented 2 years ago

ACCES POSF:

Este necesara conectarea la platforma in ambele moduri, atat cu integrare API cat si prin WebPOSF. Am vazut ca s-a mai discutat si au fost argumente atat pro cat si contra.

As sugera ca fiecare utilizator sa aiba acces la mesaje in functie de tipul de actor (FZ / OR) pe o structura de genul:

FURNIZOR:
    Mesaj: ContractSignedByClient
    Tip acces: Read
    Available: API

    Mesaj: ContractSignedBySupplier
    Tip acces: Read + Write
    Available: API

    Mesaj: ConventionSignedBySupplier
    Tip acces: Read + Write
    Available: WebPOSF

    Mesaj: ConventionSignedByOperator
    Tip acces: Read
    Available: API

si tot asa ... cu mentiunea ca: se poate ca la setarea initiala a utilizatorului, toate mesajelesa fie accesibile doar pe API sau doar pe WebPOSF, depinde de solicitare, dupa care sa se poata seta explicit ca anumite mesaje sau grup de mesaje sa fie disponibile doar in WebPOSF sau doar in API. Nu stiu ce implica in spate o asemenea structura dar este o idee ca sa putem opera anumite mesaje din platforma WEB. Este necesara aceasta posibilitate de conectare WEB diferentiata, pentru ca, pentru unele mesaje / operatiuni cum sunt conventiile tripartite/multipartite nu face sens efortul si timpul dezvoltarii pentru integrarea automata prin API.

MIGRARE

  1. inteleg ca trebuie sa migram toate contractele folosind mesajul ContractChangedInfo (INIT) - corect?
  2. inainte de a trimite ContractChangedInfo (INIT) trebuie preluate din POSF toate Place-urile aferente acestora. - corect?

ELEMENTE si PARAMETRII:

  1. CUA - inteleg ca este vorba de un identificator RENNS .. in cazul unui contract semnat la furnizor, daca la Place acest cod CUA este pus de operatorul de retea, la detaliile clientului in elementul Client il pune Furnizorul? Daca da, de unde il ia? Putem avea un sample API pentru integrarea cu RENNS avand ca exemplu o strada de felul asta? image
  2. cuaAuthor - ce reprezinta?
  3. CorrelationId - inteleg ca este folosit pe mesaje pentru a se pastra istoricul topicului (corect) si daca e asa, cum putem sa ne folosim de acest parametru si cum il setam? a) il genereaza initiatorul mesajului daca mesajul NU este un raspuns la un alt mesaj? b) daca mesajul ESTE un raspuns la un alt mesaj, atunci CorrelationId trebuie importat din mesajul la care se raspunde (am inteles bine ?)

Place

  1. am observat ca exista elementele TechnicalDataGas si TechnicalDataElectricity dar nu le-am gasit integrarea (adica unde le integram in Place , la ce proprietate)
  2. TechnicalData - vad ca are componente despre consum .. la fel, nu vad integrarea. Este o proprietate a carui element?
  3. De asemenea, place-urile de GN vad ca au in TechnicalDataGas proprietatea : ConsumptionCategory cu valori C_1, C_2 ... C_7 , insa pentru place-urile de EE nu gasesc proprietatea aferenta nivelului de tensiune (Inalta, Medie, Joasa) POD energytype

Contract

  1. additionalDate, additionalNumber - trebuie completate cand se da mesajul ContractChangedInfo (de data asta cred ca fara INIT)?
  2. previousContractDate, previousContractNumber, previousSupplier - sunt obligatorii ? Cum intram in posesia lor ca sa trimitem mesajul ContractSignBySupplier? Le cerem clientului? Ar fi foarte util sa putem interoga POSF pentru aceste date in baza

contract

PRELUARE DATE:

Place

  1. pentru api-ul de preluare Place-uri este corecta intelegerea ca url-ul este format dupa cum urmeaza?: /broker/place///<CLC/POD>/

FLUXURI si SPETE:

Contractare

  1. Cand un client semneaza cu un furnizor pe platforma WebPOSF, FZ primeste ContractSignByClient (daca am inteles bine). Intrebarea e: ce face FZ la primirea mesajului (sa presupunem ca nu e necesar sa trimita ContractMoreInfo)? Isi incarca direct in sistem datele si le proceseaza? N-ar trebui sa se raspunda si de la furnizor cu un ContractSignedBySupplier?

Reziliere

  1. ce se intampla in momentul in care un client anunta o reziliere si furnizorul o opereaza cu cateva zile inainte de termen prin ContractCanceledBySupplier dupa care clientul se razgandeste si doreste sa anuleze aceasta cerere de reziliere? Cum anulam cererea de reziliere?
ItSupportRenovatioTrading commented 2 years ago

Referitor conventia adreselor de aici: https://github.com/posfgit/standard#cateva-consideratii-despre-adrese

image

La punctul 2, inteleg ca authorId este ID-ul meu de furnizor/operator pentru ca NU am gasit adresa in RENNS iar cuaAuthor este un UUID generat de mine furnizor/operator - am inteles bine? Apoi, eu, furnizor/operator, cand primesc un mesaj ce contine o adresa, care are authorId si cuaAuthor va trebui sa mi le salvez in sistemul propriu iar cand trimit un mesaj ce contine la randul lui adresa respectiva, il trimit cu authorId si cuaAuthor primite si procesate in mesajul anterior?

ItSupportRenovatioTrading commented 2 years ago

Referitor la preluarea punctelor de livrare din POSF inainte de migrarea contractelor, in cazul furnizorului, avem o mare dilema:

ItSupportRenovatioTrading commented 2 years ago

Elementul Contract are 3 campuri (optionale) referitoare la datele contractuale anterioare, respectiv previousContractDate, previousContractNumber si previousSupplier

image

Ca furnizor, daca nu dispunem de aceste informatii, cand vom face incarcarea initiala prin ContractChangedInfo, sau chiar si atunci cand trimitem ContractSignedBySupplier , vom primi ContractMoreInfo de la ceilalti actori: WebPOSF / Operator ?

bogdannedelcu commented 2 years ago

CUA - inteleg ca este vorba de un identificator RENNS .. in cazul unui contract semnat la furnizor, daca la Place acest cod CUA este pus de operatorul de retea, la detaliile clientului in elementul Client il pune Furnizorul? Daca da, de unde il ia? Putem avea un sample API pentru integrarea cu RENNS avand ca exemplu o strada de felul asta?

noi o sa folosim acest API, este public image

bogdannedelcu commented 2 years ago

cuaAuthor - ce reprezinta?

reprezinta ID-ul adresei in sistemul IT al autorului. Spre exemplu daca ABC SRL Furnizor are un sistem propriu de adrese poate incarca ID-ul sau in acest camp. Scrie aici, daca e neclar va rog sa imi spuneti si imbunatatim. https://github.com/posfgit/standard#cateva-consideratii-despre-adrese

bogdannedelcu commented 2 years ago

CorrelationId - inteleg ca este folosit pe mesaje pentru a se pastra istoricul topicului (corect) si daca e asa, cum putem sa ne folosim de acest parametru si cum il setam? a) il genereaza initiatorul mesajului daca mesajul NU este un raspuns la un alt mesaj? b) daca mesajul ESTE un raspuns la un alt mesaj, atunci CorrelationId trebuie importat din mesajul la care se raspunde (am inteles bine ?)

Intelegerea este corecta.

bogdannedelcu commented 2 years ago
  1. am observat ca exista elementele TechnicalDataGas si TechnicalDataElectricity dar nu le-am gasit integrarea (adica unde le integram in Place , la ce proprietate)
  2. TechnicalData - vad ca are componente despre consum .. la fel, nu vad integrarea. Este o proprietate a carui element?
  3. De asemenea, place-urile de GN vad ca au in TechnicalDataGas proprietatea : ConsumptionCategory cu valori C_1, C_2 ... C_7 , insa pentru place-urile de EE nu gasesc proprietatea aferenta nivelului de tensiune (Inalta, Medie, Joasa)

Poza nu reflecta toate relatiile, deschideti fisierul PDF sau schema XSD intr-un editor de scheme (OxygenXML sau Altova XML Spy) pentru a vedea toate relatiile intre elemente. image

bogdannedelcu commented 2 years ago

insa pentru place-urile de EE nu gasesc proprietatea aferenta nivelului de tensiune (Inalta, Medie, Joasa)

E necesar aceasta informatie, nu a fost solicitata pana acum?

bogdannedelcu commented 2 years ago
  1. additionalDate, additionalNumber - trebuie completate cand se da mesajul ContractChangedInfo (de data asta cred ca fara INIT)?

Doar daca se face o modificare la contract prin act aditional. INIT doar la importul initial.

bogdannedelcu commented 2 years ago

inteleg ca trebuie sa migram toate contractele folosind mesajul ContractChangedInfo (INIT) - corect? inainte de a trimite ContractChangedInfo (INIT) trebuie preluate din POSF toate Place-urile aferente acestora. - corect?

Recomandam sa migrati datele pe care le aveti dvs in sistemele IT pe Place, sa nu asteptam dupa introducerea lor in POSF. Noile contracte semnate folosind POSF e recomandat sa fie facute cu Place luat din PODF.

bogdannedelcu commented 2 years ago
  1. previousContractDate, previousContractNumber, previousSupplier - sunt obligatorii ? Cum intram in posesia lor ca sa trimitem mesajul ContractSignBySupplier? Le cerem clientului?

sunt optionale, nu le completati daca nu le aveti in sistemele dvs.

bogdannedelcu commented 2 years ago
  1. pentru api-ul de preluare Place-uri este corecta intelegerea ca url-ul este format dupa cum urmeaza?: /broker/place///<CLC/POD>/

e corecta, asa e descris si aici https://github.com/posfgit/standard/blob/main/TestEnvironment.md#interogarea-locurilor-de-consum-folosind-brokerplace

bogdannedelcu commented 2 years ago

Contractare

  1. Cand un client semneaza cu un furnizor pe platforma WebPOSF, FZ primeste ContractSignByClient (daca am inteles bine). Intrebarea e: ce face FZ la primirea mesajului (sa presupunem ca nu e necesar sa trimita ContractMoreInfo)? Isi incarca direct in sistem datele si le proceseaza? N-ar trebui sa se raspunda si de la furnizor cu un ContractSignedBySupplier?

da trebuie sa raspunda la un moment dat, altfel clientul nu va vedea in contul din WebPOSF contractul semnat de furnizor. Nu raspunde instant la primirea mesajului, deruleaza fluxul intern, verifica documentele si apoi raspunde cand a semnat contractul.

bogdannedelcu commented 2 years ago
  1. ce se intampla in momentul in care un client anunta o reziliere si furnizorul o opereaza cu cateva zile inainte de termen prin ContractCanceledBySupplier dupa care clientul se razgandeste si doreste sa anuleze aceasta cerere de reziliere? Cum anulam cererea de reziliere?

Rezilierea se anunta la data intrarii in vigoare, nu in avans. Alegem acest mod pentru a evita situatii de tip renuntare la reziliere.

bogdannedelcu commented 2 years ago

La punctul 2, inteleg ca authorId este ID-ul meu de furnizor/operator pentru ca NU am gasit adresa in RENNS iar cuaAuthor este un UUID generat de mine furnizor/operator - am inteles bine?

da, este string nu UUID, s-a schimbat la cererea furnizorilor.

Pana cand vom avea un set unic de adrese am ales ca aplicatia WebPOSF sa propuna clientilor cand fac contract cu un furnizor X doar adresele acelui furnizor filtrand cu acest authorID = X. Cine poate sa primeasca adrese RENNS sa tina cont ca pe Bucuresti sunt foarte putine date, asa ca vor veni cel mai probabil free text, fara id-uri.

bogdannedelcu commented 2 years ago

exista vreo alta situatie cand imi este adresat un mesaj care contine un Place in afara de ContractSignByClient?; presupun ca PlaceCreatedByOperator nu imi vine in coada. - puteti confirma ?

nu vine, scrie in tabel ca nu se distribuie acest mesaj.

bogdannedelcu commented 2 years ago

Referitor la preluarea punctelor de livrare din POSF inainte de migrarea contractelor, in cazul furnizorului, avem o mare dilema: vom face pool one by one pe api-ul de preluare POD/CLC pentru toate codurile aferente contractelor active in baza noastra de date?

Migrati contractele asa cum le aveti, nu asteptati sa vina locurile de consum. Declarati doar informatiile pe care le detineti pe structura Place.

Datele din Place de pe contract raman doar pe contract, nu vor afecta locurile introduse de Operator.

La urmatoarea schimbare de furnizor veti putea citi noile date din Place din POSF, daca initiati dvs. schimbarea. Daca e initiata de WebPOSF le primiti pe ContractSignedByClient.

Mai primiti informatii de Place pe ContractNetworkChangedInfo care vine de la operator in urma unui ContractSignedBySupplier.

bogdannedelcu commented 2 years ago

Ca furnizor, daca nu dispunem de aceste informatii, cand vom face incarcarea initiala prin ContractChangedInfo, sau chiar si atunci cand trimitem ContractSignedBySupplier , vom primi ContractMoreInfo de la ceilalti actori: WebPOSF / Operator ?

Nu le completati daca nu le detineti.

ContractMoreInfo e rezervat doar furnizorului care cere mai multe informatii de la Client in cazul in care acesta a folosit WebPOSF.