Tuesday, October 19, 2010

XML eelvaade

teen vahepeal lühiülevaate kuidas üks CRM (kliendihaldus tarkvara) vahetab infot veebiserveriga kasutades selleks XMLi et anda ideid kuidas asi võiks välja näha.


  • CRMi agent ekspordib töötajate info välja txt fail kujul.
  • linuxi server töötleb texti utf8 formaati (eeldusel et txt fail on eksporditud)
"[isikukood]","[nimi]","[e-post]","[amet]","[sünnipäev]","","[suhtluskeeled (list)","[Kontor]","[telefon]","[faks]","[aktiivne (True/False)]","[nähtav veebilehel (True/False)]"
  • linuxi server töötleb utf-8 formaadis txt faili xml'iks (eeldusel et txt fail on ekporditud, tulemuseks on uus struktuur:
<="1.0" encoding="UTF-8" standalone="yes"?>
<import_xml>
<record num="1">
<personal_id>[isikukood]</personal_id>
<Name>[nimi]</Name>
<E-mail_address>[e-post]</E-mail_address>
<Work_title>[amet]</Work_title>
<Date_of_birth>[sünnipäev]</Date_of_birth>
<fluent_in_language>
<value>English</value>
<value>Estonian</value>
<value>Russian</value>
</fluent_in_language>
<belongs_to_office>[büroo]</belongs_to_office>
<work_phone>[telefon]</work_phone>
<fax>[faks]</fax>
<active>[aktiivne (True/False)]</active>
<show_in_webpage>[nähtav veebilehel (True/False)]
              </show_in_webpage> 
          </record>
           </import_xml>

  • linuxi  veebiserver (ka sisevõrgus) käivitab automaatsel php scripti mis käib läbi xml'i puu (eeldusel et xml fail on ekporditud), kontrollib kas sellise isikukoodiga persoon on mysql baasis olemas, kui ei ole siis lisab uue.
  • süsteem on niipalju töökindel, et ainuke probleem võib tekkida info mitte-uuenemisega. näiteks kui võrguketta kataloog kus peaks olema valmis xml fail on kuskile kadunud (ka linuxiga juhtub), siis cron job ei saa php scripti korralikult jooksutada ja logis on vastav kirje.

Sellest lähtuvalt - millist XML puud meil vaja on mis oleks piisavalt paindlik toetama mitu e-poe klienti (nt ühe ketti mitut kohvikut). Nt:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<i-menu>
<toode id="1">
<Nimi>[MingiNimi]</Nimi>
<Koostis>
<Koponent>[MingiKoponent]</Koponent>
<Koponent>[MingiKoponent]</Koponent>
</Koostis>
<TavaHind>[MingiTavaHind]</TavaHind>
<SoodusHind>[MingiSoodushind]</SoodusHind>
<P2evaPraad>[Kas päevapraad (True/False)]</P2evaPraad>
</toode>
</i-menu>
Ettepanekuid? 

No comments:

Post a Comment