Export document prin mesaj EDI (inline)
Funcțiile customizate de tipul "Export document prin mesaj EDI (inline)" sunt de două tipuri: STANDARD și INLINE și sunt create pentru generarea unor fișiere, care pot fi utilizate ulterior pentru importul automat într-o altă societate în NexusERP sau pentru automatizarea sincronizării cu alte sisteme. Pentru a utiliza acest tip de funcție customizată este necesară selecția unei funcții în cadrul unui mesaj EDI.
Pentru funcțiile INLINE se va realiza un select care să returneze structura prezentată, iar pentru funcțiile STANDARD se va realiza un INSERT INTO @ret_table, respectând aceeași structură.
Parametru | Tip | Descriere |
---|---|---|
@al_tabel | VARCHAR(6) | ANLUNA, parte din cheia primară a înregistrării asociate |
@pl_tabel | SMALLINT | PCT_LCR, parte din cheia primară a înregistrării asociate |
@id_tabel | NUMERIC(18,0) | ID, parte din cheia primară a înregistrării asociate |
Structura returnată de funcția customizată
Structură | Tip | Descriere |
---|---|---|
nume_fisier | VARCHAR(50) | Numele fișierului, inclusiv extensia |
continut_fisier | NVARCHAR(MAX) | Datele sub formă de JSON ce se doresc a fi importate ulterior |
Exemplu de funcție customizată INLINE pentru exportul partenerilor creați în ziua curentă
Pentru funcția STANDARD se va insera în tabela @ret_table, urmat de același select:
INSERT INTO @ret_table(nume_fisier, continut_fisier)
SELECT
nume_fisier = 'NexusEDI_Parteneri_' + dbo.ttos(GETDATE()) + '.json',
continut_fisier = (
SELECT TRIM(p.nume) AS [denumire],
TRIM(p.id_extern) AS id_partener,
TRIM(p.cod_fiscal) AS cif_cnp,
p.persfiz AS pers_fizica,
TRIM(p.reg_comert) AS registru_comert,
TRIM(p.cod_tara) AS cod_tara,
TRIM(p.localitate) AS den_localitate,
p.cod_siruta AS cod_siruta,
TRIM(p.cod_judet) AS cod_judet,
TRIM(p.judet) AS den_regiune,
TRIM(p.telefon) AS telefon,
TRIM(p.email) AS email,
TRIM(p.fax) AS fax,
TRIM(p.nume_cls) AS den_clasificare,
TRIM(p.nume_cls2) AS den_clasificare2,
TRIM(p.nume_cls3) AS den_clasificare3,
TRIM(p.manager) AS manager,
TRIM(p.obs_print) AS observatii_facturare,
p.tva_incas AS tva_incas,
p.inactiv AS inactiv,
p.intrastat AS platitor_tva,
p.lim_credit AS limita_credit,
p.term_inc AS termen_incasare,
p.term_inc2 AS termen_incasare2,
p.term_plt AS termen_plata,
p.restmax AS restanta_max,
(SELECT l.[data] AS [data],
l.id_tipvf AS [id_tip_vector_fiscal],
TRIM(l.desc_tipvf) AS [descriere_tip_vector_fiscale],
l.operatie AS [operatie],
TRIM(l.den_operatie) AS [den_operatie],
l.perioada AS [perioada],
TRIM(l.den_perioada) AS [den_perioada]
FROM parteneri_vector_fiscal_view l
WHERE p.pct_lcr = l.pl_part AND p.id = l.id_part
FOR JSON PATH) AS vector_fiscal,
(SELECT TRIM(b.banca) AS [banca],
TRIM(b.filiala) AS [filiala],
TRIM(b.cod_bic) AS [cod_bic],
TRIM(b.cod_banca) AS [cod_banca],
TRIM(b.cont_banca) AS [cont_banca],
TRIM(b.deviz) AS [deviz],
b.facturare AS [utilizez_facturare]
FROM banci_view b
WHERE p.pct_lcr = b.pl_part AND p.id = b.id_part
FOR JSON PATH) AS banci,
(SELECT d.id_extern AS [id_extern],
TRIM(d.nume) AS [denumire],
TRIM(d.ci_seria) AS [ci_seria],
d.ci_numar AS [ci_numar],
TRIM(d.ci_elib) AS [ci_elib],
d.ci_data AS [ci_data],
TRIM(d.nr_auto) AS [numar_auto],
TRIM(d.email) AS [email],
TRIM(d.telefon) AS [telefon],
TRIM(d.cod_tara) AS [cod_tara],
d.id_loc AS [id_localitate],
TRIM(d.localitate) AS [den_localitate],
TRIM(d.judet) AS [den_regiune],
TRIM(d.adresa) AS [adresa]
FROM delegati_view d
WHERE p.pct_lcr = d.pl_part AND p.id = d.id_part
FOR JSON PATH) AS delegati,
(SELECT TRIM(l.id_extern) AS [id_extern],
TRIM(l.nume) AS [denumire],
l.id_loc AS [id_localitate],
l.localitate AS [den_localitate],
l.cod_siruta AS [cod_siruta],
TRIM(l.judet) AS [den_regiune],
TRIM(l.adresa_st) AS [strada],
TRIM(l.adresa_nr) AS [numar],
TRIM(l.adresa_bl) AS [bloc],
TRIM(l.adresa_sc) AS [scara],
TRIM(l.adresa_et) AS [etaj],
TRIM(l.adresa_ap) AS [apartament],
TRIM(l.cod_postal) AS [cod_postal],
TRIM(l.telefon) AS [telefon],
TRIM(l.zona) AS [zona],
TRIM(l.email) AS [email],
l.gln AS [gln],
sediu AS [este_sediu],
TRIM(observatii) AS [observatii],
TRIM(cod_judet) AS [cod_judet],
TRIM(merchandiser) AS [merchandiser]
FROM part_livrare_view l
WHERE p.pct_lcr = l.pl_part AND p.id = l.id_part
FOR JSON PATH) AS adrese_livrare
FROM parteneri_nom p
INNER JOIN fur f ON p.pct_lcr = f.pl_401 AND p.id = f.id_401
WHERE CONVERT(DATE, f.data_cr) = CONVERT(DATE, GETDATE()) AND CONVERT(DATE, p.data_cr) = CONVERT(DATE, GETDATE())
FOR JSON PATH)