SAP ABAP BDC: Mitä on erätiedonsiirto?

⚡ Älykäs yhteenveto

SAP ABAP BDC (Batch Data Communication) siirtää vanhoja tietoja R/3:een ajamalla vakiotapahtumia automaattisesti. Tällä sivulla selitetään eräsyöttöistunnot, klassiset ja puhelutapahtumamenetelmät, BDCDATA-rakenne, BDC_OPEN_GROUP-työnkulku ja eräsyöttötallennin.

  • 🔄 Ydintarkoitus: BDC syöttää datajoukot tapahtuman näyttöihin automaattisesti ja suorittaa jokaisen näytön ja liiketoiminnan validoinnin käyttäjän tavoin.
  • 🧾 Eräsyöttöistunto: Istunto ryhmittelee tapahtumakutsut niiden syöttötietoihin ja tallentaa ne tietokantaan, kunnes ne suoritetaan.
  • 🛠️ Kaksi menetelmää: Klassinen eräsyöttö käyttää BDC_OPEN_GROUP-, BDC_INSERT- ja BDC_CLOSE_GROUP-metodeja, kun taas puhelutapahtumien menetelmässä käytetään CALL TRANSACTION USING -metodia.
  • 🇧🇷 Menetelmän valinta: Klassinen eräsyöttö on synkroninen lokin kanssa, ja puhelutapahtuma on nopeampi, asynkroninen ja käsittelee yhden tapahtuman.
  • 🗂️ BDCDATA-rakenne: Kentät PROGRAM, DYNPRO, DYNBEGIN, FNAM ja FVAL kuvaavat näyttöä, kenttää ja kunkin vaiheen arvoa.
  • ⏺️ tallennin: Eräsyöttötallennin tallentaa manuaalisen tapahtuman ja luo istunnon tai valmiin BDC-ohjelman, joka suoritetaan myöhemmin SM35:ssä.

SAP ABAP BDC -erätiedonsiirto

Johdatus eräsyöttöön

Eräsyöttöä käytetään tyypillisesti tiedon siirtämiseen ei-R/3-järjestelmistä R/3-järjestelmiin tai tiedon siirtämiseen R/3-järjestelmien välillä.

Se on tiedonsiirtotekniikka, jonka avulla voit siirtää tietojoukkoja automaattisesti tapahtumiin kuuluville näytöille ja siten SAP järjestelmä. Eräsyöttöä ohjataan eräsyöttöistunnolla.

Eräsyöttöistunto

Ryhmittelee sarjan tapahtumakutsuja yhdessä syöttötietojen ja käyttäjän toimien kanssa. Eräsyöttöistuntoa voidaan käyttää dialogitapahtuman suorittamiseen eräsyötössä, jossa istunto käsittelee osan tai kaikki näytöt. Eräsyöttöistunnot tallennetaan tietokantaan tietokantataulukoina, ja niitä voidaan käyttää ohjelman sisällä sisäisinä taulukoina tapahtumia käytettäessä.

Huomioitavaa

  • BDI toimii normaalisti SAP tapahtumat aivan kuten käyttäjä, mutta se suorittaa tapahtuman automaattisesti.Kaikki näytön tarkistukset ja liiketoimintalogiikkatarkistukset tehdään erätietojen syöttöä käytettäessä.
  • Se soveltuu suurten tietomäärien syöttämiseen.
  • Manuaalista vuorovaikutusta ei tarvita

Eräsyöttömenetelmät

SAP tarjoavat kaksi perusmenetelmää vanhojen tietojen siirtämiseksi R/3-järjestelmään.

  1. Klassinen eräsyöttötapa.
  2. Puhelutapahtumatapa.

Klassinen eräsyöttötapa

Tässä menetelmässä ABAP/4-ohjelma lukee ulkoiset tiedot SAP Järjestelmä ja tallentaa eräsyöttöistunnossa.

Kun olet luonut istunnon, voit suorittaa istunnon suorittaaksesi sen SAP kauppa siinä.

Tämä menetelmä käyttää funktiomoduuleja BDC_ OPEN, BDC_INSERT ja BDC_CLOSE

Eräsyöttöistunto voidaan käsitellä kolmella tavalla

  1. Etualalla
  2. Taustalla
  3. Käsittelyn aikana virhenäytöllä

Sinun tulee käsitellä eräsyöttöistuntoja etualalla tai käyttämällä virhenäyttöä, jos haluat testata tiedonsiirtoa.

Jos haluat suorittaa tiedonsiirron tai testata sen suorituskykyä, sinun tulee käsitellä istunnot taustalla.

Huomioitavaa klassisesta eräsyöttömenetelmästä

  • Synchroninen käsittely
  • Siirrä tietoja useille tapahtumille.
  • Synchronous tietokannan päivitys.
  • Eräsyöttöprosessiloki luodaan jokaiselle istunnolle.
  • Istuntoa ei voi luoda rinnakkain.

Puhelutapahtumatapa.

Tässä menetelmässä ABAP/4-ohjelma suorittaa CALL TRANSACTION USING -käskyn SAP liiketoimi.

Koko eräsyöttöprosessi tapahtuu verkossa ohjelmassa

Puhelutapahtumatapa

Huomautuksia:

  • Nopeampi tietojen käsittely
  • Asynkroninen käsittely
  • Siirrä tiedot yhdestä tapahtumasta.
  • Eräsyötteen käsittelylokia ei luoda.

Klassinen eräsyöttö vs. puhelutapahtuma

Nämä kaksi menetelmää johtavat samaan tapahtumaan, mutta eroavat toisistaan ​​nopeuden, lokitietojen ja virheiden käsittelyn suhteen. Alla oleva taulukko näyttää, milloin kumpikin on oikea valinta.

Kriteeri Klassinen eräsyöttö Puhelutapahtuma
Tekniikka BDC_OPEN_GROUP, BDC_INSERT, BDC_CLOSE_GROUP PUHELUTAPAHTUMAN KÄYTTÖ
Käsittely Synchronous, ajaa myöhemmin SM35:stä Toimii verkossa, ohjelmassa
Liiketoimet Useita tapahtumia yhden istunnon aikana Yksi tapahtuma puhelua kohden
Kirjaudu Istuntoa kohden luodaan automaattisesti prosessiloki. Ei lokia, ohjelma kerää viestit
Nopeus Hitaampi, mutta vakaa ja uudelleenkäynnistettävä Nopeampi
Parasta Suuret, kertaluonteiset vanhat lataukset, joiden on oltava auditoitavissa Yhden asiakirjan interaktiivinen tai nopea siirto

Menetelmien vertailun jälkeen seuraavassa osiossa esitetään projektin yleinen menettelytapa.

Eräsyöttömenettelyt

Eräsyöttömenettelyt

Noudatat yleensä seuraavia vaiheita kehittääksesi eräsyöttöä organisaatiollesi

  1. Vanhojen tietojen analyysi. Määritä, kuinka siirrettävät tiedot kartoitetaan SAP Rakenne. Huomioi myös tarvittavat tietotyypin tai datan pituuden muunnokset.
  2. Tuottaa SAP tietorakenteet käytettäväksi vientiohjelmissa.
  3. Vie tiedot peräkkäiseen tiedostoon. Huomaa, että ennalta määritetty merkkimuoto vaaditaan SAP eräsyöttöohjelmat.
  4. Jos SAP toimitettuja BDC-ohjelmia ei käytetä, koodaa oma eräsyöttöohjelmasi. Valitse sopiva eräsyöttötapa tilanteen mukaan.
  5. Käsittele tiedot ja lisää ne SAP järjestelmä.
  6. Analysoi prosessiloki. Käytä ohjelmasi keräämiä viestejä CALL TRANSACTION -menetelmässä, jossa oikeaa lokia ei luoda.
  7. Korjaa ja käsittele virheelliset tiedot uudelleen prosessianalyysin tuloksista.

BDC-ohjelman kirjoittaminen

Voit noudattaa seuraavaa prosessia BDC-ohjelman kirjoittamisessa

  1. Analysoi tapahtuma(t) eräsyötetietojen käsittelemiseksi.
  2. Päätä käytettävä eräsyöttötapa.
  3. Lue tiedot peräkkäisestä tiedostosta
  4. Suorita tietojen muunnos tai virheiden tarkistus.
  5. Tietojen tallentaminen eräsyöttörakenteeseen, BDCDATA.
  6. Luo eräsyöttöistunto klassiselle eräsyötölle tai käsittele tiedot suoraan CALL TRANSACTION USING -käskyllä.

Eräsyöttötietorakenne

Eräsyöttötietorakenteen ilmoitus

DATA : BEGIN OF < bdc table>

OCCURS <occurs parameters>.

INCLUDE STRUCTURE BDCDATA.

DATA:END OF <bdc table>.
Kenttä nimi Tyyppi Pituus Tuotetiedot
OHJELMA HIILTYÄ 8 Moduuliallas
DYNPRO NUMC 4 Dynpro numero
DYNBEGIN HIILTYÄ 1 Dynpron käynnistäminen
FNAM HIILTYÄ 35 Kenttä nimi
FVAL HIILTYÄ 80 Kentän arvo

Tietyn näytön tietojen kenttien järjestyksellä ei ole mitään merkitystä

Huomautukset

  • Kun täytät BDC-tietoja, muista ottaa huomioon käyttäjäasetukset. Tämä on erityisen tärkeää täytettäessä kenttiä, jotka sisältävät numeroita (kuten määrä, summa). Käyttäjäasetukset määräävät, mikä on ryhmän nimi.ping numeroiden merkki Esim.: Luku viisikymmentätuhatta voidaan kirjoittaa muodossa 50 000,00 tai 50 000,00 käyttäjän asetuksista riippuen.
  • Tiivistä FVAL-kenttä määrä- ja määräkentille niin, että ne ovat vasemmalle tasattuina.
  • Huomaa, että kaikkia BDC:n kautta täyttämiäsi kenttiä tulee käsitellä merkkityyppisinä kenttinä BDC-tietotaulukkoa täytettäessä.
  • Joissakin näytöissä, kun täytät arvoja taulukon ohjausobjektissa BDC:tä käyttämällä, sinun on huomioitava, kuinka monta riviä on näytön oletuskoossa, ja koodittava niin monta riviä. Jos sinun on täytettävä enemmän rivejä, sinun on koodattava "Page down" -toiminto, kuten tekisit, kun täytät taulukon ohjausobjektin manuaalisesti.
  • Yllä olevassa skenaariossa näkyvien rivien määrä vaihtelee käyttäjän käyttämän näytön koon mukaan. Koodaa siis aina vakionäyttökoko ja varmista, että BDC toimii aina normaalikokoisena riippumatta siitä, millaisena käyttäjä pitää näytön kokonsa.

Eräsyöttöistunnon luominen

  1. Avaa eräsyöttöistunto käyttämällä toimintomoduulia BDC_OPEN_GROUP.
  2. Jokaiselle istunnon tapahtumalle:
  3. Täytä BDCDATA kaikkien tapahtumassa käsiteltyjen ruutujen ja kenttien arvoilla.
  4. Siirrä tapahtuma istuntoon BDC_INSERT:llä.
  5. Sulje eräsyöttöistunto BDC_CLOSE_GROUP:lla

Esimerkki: BDC käyttäen puhelutapahtumaa

Alla oleva ohjelma näyttää kutsutapahtumametodin kokonaisuudessaan. Se muodostaa BDCDATA-taulukon tapahtuman kahdelle näytölle ja suorittaa sen N-tilassa (ei näyttöä) virhetaulukon kanssa, jotta virheistä voidaan raportoida.

REPORT z_bdc_call_transaction.

DATA: lt_bdcdata TYPE STANDARD TABLE OF bdcdata,
      ls_bdcdata TYPE bdcdata,
      lt_messages TYPE STANDARD TABLE OF bdcmsgcoll.

* Helper that appends one BDCDATA line
FORM bdc_field USING p_fnam p_fval.
  CLEAR ls_bdcdata.
  ls_bdcdata-fnam = p_fnam.
  ls_bdcdata-fval = p_fval.
  APPEND ls_bdcdata TO lt_bdcdata.
ENDFORM.

* Screen 1: start the dynpro, then fill the fields
CLEAR ls_bdcdata.
ls_bdcdata-program  = 'SAPMV45A'.
ls_bdcdata-dynpro   = '0101'.
ls_bdcdata-dynbegin = 'X'.
APPEND ls_bdcdata TO lt_bdcdata.

PERFORM bdc_field USING 'VBAK-AUART' 'OR'.
PERFORM bdc_field USING 'BDC_OKCODE' '/00'.

* Run the transaction: mode N = no display, update S = synchronous
CALL TRANSACTION 'VA01'
  USING         lt_bdcdata
  MODE          'N'
  UPDATE        'S'
  MESSAGES INTO lt_messages.

IF sy-subrc <> 0.
  * Read lt_messages to report the errors that occurred
ENDIF.

💡 Vinkki: MODE-parametri ohjaa näyttöä: A näyttää kaikki näytöt, E pysähtyy vain virheen sattuessa ja N toimii äänettömästi. Käytä E:tä testauksen aikana ja N:ää tuotantokuormalle.

Eräsyöttötallennin

Eräsyöttötallennin (Järjestelmä > Palvelut > Eräsyöttö > Tallennin) tallentaa manuaalisesti syötetyt tapahtumat ja luo eräsyöttöistunnon, joka voidaan suorittaa myöhemmin SM35:llä.

Eräsyöttötallennin

  • Aloita eräsyötön tallennin valitsemalla Eräsyötön aloitusnäytöstä Tallennus-painike.
  • Tallennuksen nimi on käyttäjän määrittämä nimi ja se voi vastata eräsyöttöistunnon nimeä, joka voidaan luoda tallennuksesta.
  • Anna SAP tapahtuma ja aloita tapahtuman kirjaaminen.
  • Kun olet lähettänyt viestin a SAP tapahtuma, valitse joko Hae tapahtuma ja Tallenna lopettaaksesi tallennuksen tai Seuraava tapahtuma ja kirjaa toinen tapahtuma.
  • Kun olet tallentanut tallenteen, voit luoda tallennuksesta eräsyöttöistunnon ja/tai luoda tallennuksesta eräsyöttöohjelman.
  • Luomaasi eräsyöttöistuntoa voidaan nyt analysoida aivan kuten mitä tahansa muuta eräsyöttöistuntoa.
  • Eräsyötteen tallentimen toiminnon tuottama ohjelma on tehokas työkalu tietorajapinnan ohjelmoijalle. Se tarjoaa vankan pohjan, jota voidaan sitten muuttaa asiakkaan tarpeiden mukaan.

⚠️ Varoitus: Tallennus tallentaa näyttösekvenssin täsmälleen sellaisena kuin se tapahtui, joten näyttöä, joka näkyy vain tiettyjen tietojen, kuten keskeneräisyysponnahdusikkunan, yhteydessä, ei tallenneta. Testaa luotu ohjelma aina tiedoilla, jotka käynnistävät kaikki valinnaiset näytöt.

UKK

BDC_OKCODE sisältää funktiokoodin, jonka käyttäjä laukaisi painikkeella tai näppäimellä, kuten /00 Enter-näppäimelle tai =SAVE Tallenna-näppäimelle. Se kertoo näytölle, mikä toiminto suoritetaan kenttien täyttämisen jälkeen.

SM35 on eräsyötön valvonta. Se listaa klassisen eräsyötön luomat istunnot, suorittaa ne etualalla tai taustalla ja näyttää prosessilokin, jotta epäonnistuneet tapahtumat voidaan analysoida ja käsitellä uudelleen.

BDC:tä käytetään edelleen silloin, kun BAPI:a ei ole, koska se käyttää uudelleen tapahtuman näyttövalidointeja. LSMW käärii BDC:n, tallenteet ja BAPI:t yhteen siirtotyökaluun ja BAPI on suositeltava, kun käytettävissä on vakaa API.

Kyllä. ABAP-kehitystyökalujen tekoälyavustajat ottavat tallenteen tai näyttöluettelon ja luonnostelevat BDCDATA-populaation, CALL TRANSACTION -lohkon ja viestien käsittelyn. Kehittäjä yhdistää lähdetiedoston ja testaa latauksen.

Tekoälytyökalut profiloivat vanhan tiedoston, merkitsevät puuttuvat pakolliset kentät ja muotoristiriidat ennen latausta ja tiivistävät erän syöttölokin jälkikäteen, jotta virheelliset tietueet voidaan korjata ja käsitellä uudelleen nopeammin.

Tiivistä tämä viesti seuraavasti: