Gegevens exporteren uit database; creativiteit gezocht

Pagina: 1
Acties:
  • 166 views sinds 30-01-2008
  • Reageer

  • Chemist
  • Registratie: Juli 1999
  • Laatst online: 07-11-2025
Op mijn werk zit ik nu in een project waar we volgende week moeten beginnen met de bouw echter liepen we vandaag een probleem aan waar we even snel geen oplossing voor konden bedenken. Helaas hebben we geen tijd voor een uitgebreide feasability study dus nou hoop ik dat er hier iemand een briljant idee heeft (ja, ik weet dat 'huiswerk opdrachten' eigenlijk niet mogen, maar dit is misschien wel een uitdaging ;))

Verder moet ik op sommige punten in het verhaal een beetje vaag blijven (geheimhoudingsverklaringen en zo) maar ik zal het zo duidelijk mogelijk proberen te maken.

De situatie:
We hebben een aantal contactpersonen die bij klanten langs gaan om contracten af te sluiten. Deze personen hebben een laptop met een applicatie waar concept contracten in worden aangemaakt die op een later tijdstip worden verstuurd naar de back-office ter verwerking. Tesamen met deze contracten worden een aantal gegevens over de klant naar een centrale database gestuurd. Als een contactpersoon op een later tijdstip weer langs de klant gaat kan hij inloggen op de database om de meest recente klantgegevens op te halen en zo de meest recente klantgegevens beschikbaar te hebben.

Het probleem:
Bovenstaande verhaal is nog niet gerealiseerd en met name bij het ophalen van de klantgegevens lopen we tegen een aantal problemen aan. Deze problemen zijn deels technisch van aard, maar een aantal zijn procedureel en daar kunnen we ook niet omheen.

Om te beginnen worden de gegevens uit de database in XML formaat aangeboden aan de applicatie op de laptop. Deze gegevens moeten dus op de een of andere manier op de laptop komen. Een van de eerste ideeen was dan ook om er een XML bestand van te maken en dat door de applicatie te laten inlezen. Het probleem is alleen dat de klantgegevens database met een web-voorkant werkt en niet zonder meer op de laptop kan schrijven; je krijgt dan een melding van je webbrowser of je het bestand wilt openen of opslaan en beide opties hebben beperkingen (openen betekent dat de applicatie moet worden geopend wat niet altijd wenselijk is op dat moment en opslaan gebeurt niet op een standaard locatie).

Een alternatief daarop is het opslaan van het bestand op een netwerkschijf (die wel toegankelijk is voor de database), maar daar lopen we tegen het probleem aan dat die wel beschikbaar moet zijn op het moment dat de applicatie wordt geopend en die garantie is er niet (na het ophalen van de gegevens mag het ook geen verplichting worden de applicatie op de laptop te moeten openen).

Verder hebben we nog zitten filosoferen over het benaderen van de klantdatabase via de applicatie (zodat je direct naar de applicatie kan exporteren), maar ook daar lopen we tegen het probleem aan dat de gebruikers niet de verplichting moeten hebben om de applicatie te openen om de gegevens op te halen. Hierdoor vielen ook gelijk een aantal andere opties af (exporteren/importeren via het clipbord bijvoorbeeld).

Wat we dus zoeken is een manier om een database met een web-voorkant zonder melding een bestand te laten schrijven op een lokale machine. Uiteraard loop je dan tegen een autorisatie verhaal op, maar dat is nog het minst van onze problemen. Weet iemand hier een methode om dat toch voor elkaar te krijgen of is er misschien iemand met een alternatieve oplossing die we over het hoofd hebben gezien ??

(ps, ik heb het verhaal hier gezet omdat het me leek dat hier de meeste kennis zit om dit probleem te tackelen, mocht dit fout gedacht zijn dan bij voorbaat mijn excuses hiervoor)

Just because I'm paranoid, doesn't mean they're not watching me


  • sig69
  • Registratie: Mei 2002
  • Laatst online: 16:14
Chemist schreef op maandag 08 mei 2006 @ 22:42:
Wat we dus zoeken is een manier om een database met een web-voorkant zonder melding een bestand te laten schrijven op een lokale machine.
Dit lijkt me je grootste probleem, en maar goed ook want als dit zou kunnen is het hek natuulijk van de dam.. Als ik jou was zou ik het ook absoluut niet blijven nastreven om het zo op te lossen.
of is er misschien iemand met een alternatieve oplossing die we over het hoofd hebben gezien ??
Waarom dan niet een klein progje op de laptop die af en toe op de achtergrond via internet wat bestandjes ophaalt?

Verder: wat op mij vreemd overkomt is dat er dingen via een standalone applicatie op de laptop en via een webapplicatie gebeuren. Ik snap het idee wel (altijd de laatste gegevens beschikbaar via internet), maar in dit geval werkt het weer niet lekker omdat de applicatie met lokale xml files werkt. Heb ik dat goed?

[ Voor 20% gewijzigd door sig69 op 08-05-2006 22:52 ]

Roomba E5 te koop


  • Fiander
  • Registratie: Februari 2001
  • Laatst online: 21-01 11:00
en de applicatie via URI meteen de webinterface laten benaderen ?
ik neem teminste aan dat je in de applicatie kunt opgeven waar het xml bestand vandaan moet komen?

Deze sig is een manueel virus!! Als je dit leest heb je het. Mail dit bericht naar iedereen die je kent, en verwijder alle bestanden van je computer.


  • Chemist
  • Registratie: Juli 1999
  • Laatst online: 07-11-2025
sig69 schreef op maandag 08 mei 2006 @ 22:50:
[...]
Dit lijkt me je grootste probleem, en maar goed ook want als dit zou kunnen is het hek natuulijk van de dam.. Als ik jou was zou ik het ook absoluut niet blijven nastreven om het zo op te lossen.
Mja, daar heb je gelijk in, maar het zou wel erg handig als dat toch omzeilt zou kunnen worden met bijvoorbeeld een certificaat of zo ....
Waarom dan niet een klein progje op de laptop die af en toe op de achtergrond via internet wat bestandjes ophaalt?
Dat is niet handig omdat een contactpersoon specifiek moet aangeven van welke klanten de gegevens moeten worden opgehaald en het niet wenselijk is om de hele database naar de laptop te exporteren. Daarnaast wordt de database niet benaderd via internet maar via een beveiligde verbinding die alleen op de werkplek op te zetten is; deze verbinding is dus niet altijd (en zeker niet bij de klant) aanwezig.
Ook is het installeren van een extra stuk software geen voorkeursoplossing om distributieredenen, maar daar zou wel mee te leven zijn.
Verder: wat op mij vreemd overkomt is dat er dingen via een standalone applicatie op de laptop en via een webapplicatie gebeuren. Ik snap het idee wel (altijd de laatste gegevens beschikbaar via internet), maar in dit geval werkt het weer niet lekker omdat de applicatie met lokale xml files werkt. Heb ik dat goed?
Ja dat heb je goed. De applicatie kan alleen gegevens importeren en exporteren via XML; daar zitten we dus aan vast. Verder is de constructie zo omslachtig doordat het eigenlijk 2 applicaties zijn die al langere tijd in productie staan en die nu aan elkaar moeten worden geknoopt. Idealiter zou dit via webservices gaan, maar door allerlei oorzaken zijn die pas op zijn vroegst eind dit jaar beschikbaar. Wachten tot die beschikbaar zijn is ook geen oplossing helaas.
Fiander schreef op maandag 08 mei 2006 @ 22:51:en de applicatie via URI meteen de webinterface laten benaderen ?
ik neem teminste aan dat je in de applicatie kunt opgeven waar het xml bestand vandaan moet komen?
Dat zou kunnen inderdaad, maar dan moet de database dus benaderd worden door eerst de applicatie op starten en dat is (vanuit procedures) niet wenselijk.

Just because I'm paranoid, doesn't mean they're not watching me


  • sig69
  • Registratie: Mei 2002
  • Laatst online: 16:14
Je zult ergens concessies moeten gaan doen denk ik. Zoals ik het lees ben je op sowieso afhankelijk van een netwerk/internetverbinding op de laptop, diverse andere randvoorwaarden en je wilt niet dat de hele database op de laptop geinstalleerd wordt. Waarom niet? Is de database zo groot of wat?
Verder lijkt het me niet erg moelijk om een updatemanager te schrijven waarin je contactpersoon aan kan geven welke klanten tot zijn portfolio behoren, zodat alleen die gegevens opgehaald worden.
Ook geef je geen informatie over welk DBMS het gaat, waardoor het lastig wordt om over een beter geintegreerde oplossing na te denken. In het geval van MSSQL zou je bijvoorbeeld aan een combinatie van merge replication en SqlXml kunnen denken.

[ Voor 3% gewijzigd door sig69 op 09-05-2006 09:32 ]

Roomba E5 te koop


  • Chemist
  • Registratie: Juli 1999
  • Laatst online: 07-11-2025
sig69 schreef op dinsdag 09 mei 2006 @ 09:31:
Zoals ik het lees ben je op sowieso afhankelijk van een netwerk/internetverbinding op de laptop, diverse andere randvoorwaarden
Klopt, het gaat hier om vrij streng dichtgetimmerde laptops die behoorlijk afhankelijk zijn van de beveiligde verbinding. Deze verbinding wordt gebruikt voor alle updates, mail en het opvragen van informatie.
en je wilt niet dat de hele database op de laptop geinstalleerd wordt. Waarom niet? Is de database zo groot of wat?
Ook geef je geen informatie over welk DBMS het gaat
De database is behoorlijk groot inderdaad (niet alleen onze afdeling zet er informatie in en informatie van andere afdelingen is niet relevant). Daarnaast gaat het hier om een database pakket wat te zwaar is om op een laptop te draaien. (het is geen standaard SQL gebasseerd iets iig).
Verder lijkt het me niet erg moelijk om een updatemanager te schrijven waarin je contactpersoon aan kan geven welke klanten tot zijn portfolio behoren, zodat alleen die gegevens opgehaald worden.
Dat zit al in de database ingebakken; de contactpersoon logt (via een web-voorkant) in op de database, selecteert de klanten waar hij/zij de informatie van wil en laat deze vervolgens exporteren. Het automatiseren van dit proces is eigenlijk niet rendabel aangezien het om hooguit enkele klanten per dag gaat.

Waar we ook naar hebben zitten denken is een constructie in de trend van: database schrijft naar fileserver, fileserver schrijft naar laptop. Het probleem is alleen dat het user-id waarmee wordt ingelogd op de database niet hetzelfde is als het user-id waarmee wordt aangelogd op de laptop. Het is dus vrij lastig voor de fileserver te bepalen welk bestand naar welke laptop moet (het is zeer waarschijnlijk dat er tijdstippen zijn waarop meerdere contactpersonen klantgegevens ophalen). Verder is ieder contactpersoon een eigen map geven op de fileserver (welke je dan zou kunnen koppelen met een user-id - user-id tabel) ook niet echt een optie omdat er dan 350 mappen moeten worden aangemaakt....

Is het in het algemeen mogelijk om vanuit een server naar een ip adres te schrijven ?
(dus een bestand opslaan in \\$ip_adres_gebruiker\documenten)

Anders vrees ik dat we inderdaad in een pat-stelling terecht zijn gekomen. Automatisch vanuit de web-voorkant exporteren zonder meldingen is niet te doen en alle andere opties vereisen dat de applicatie ook opgestart is/wordt volgens mij ....

Just because I'm paranoid, doesn't mean they're not watching me


  • sig69
  • Registratie: Mei 2002
  • Laatst online: 16:14
Chemist schreef op dinsdag 09 mei 2006 @ 10:06:
Waar we ook naar hebben zitten denken is een constructie in de trend van: database schrijft naar fileserver, fileserver schrijft naar laptop. Het probleem is alleen dat het user-id waarmee wordt ingelogd op de database niet hetzelfde is als het user-id waarmee wordt aangelogd op de laptop. Het is dus vrij lastig voor de fileserver te bepalen welk bestand naar welke laptop moet (het is zeer waarschijnlijk dat er tijdstippen zijn waarop meerdere contactpersonen klantgegevens ophalen). Verder is ieder contactpersoon een eigen map geven op de fileserver (welke je dan zou kunnen koppelen met een user-id - user-id tabel) ook niet echt een optie omdat er dan 350 mappen moeten worden aangemaakt....
Dat zou eventueel wel te scripten zijn, en dan kan je waarschijnlijk wel met iets van synchronisatie gaan spelen wat standaard wel in windows zit. Maar hier heb ik niet zoveel verstand van, ben geen systeembeheerder. Verder zou ik de fileserver ook niet het kopieren laten initieren, maar de laptops. Die "weten" immmers wanneer ze er wel of niet bij kunnen.
Is het in het algemeen mogelijk om vanuit een server naar een ip adres te schrijven ?
(dus een bestand opslaan in \\$ip_adres_gebruiker\documenten)
Uiteraard. Mits de rechten goed ingesteld zijn
Anders vrees ik dat we inderdaad in een pat-stelling terecht zijn gekomen. Automatisch vanuit de web-voorkant exporteren zonder meldingen is niet te doen en alle andere opties vereisen dat de applicatie ook opgestart is/wordt volgens mij ....
Waar ik hier nu nog aan denk, is dat je dit misschien wel met een ActiveX plugin zou kunnen oplossen. Hier ben ik overigens niet zo bekend mee, en aangezien de laptops "dichtgetimmerd" zijn zal er vast wel ergens een rechten-issue opduiken maar dat moet wel op te lossen zijn.
offtopic:
Leuk, beetje brainstormen op dinsdag :Y)

[ Voor 3% gewijzigd door sig69 op 09-05-2006 10:30 ]

Roomba E5 te koop


  • Chemist
  • Registratie: Juli 1999
  • Laatst online: 07-11-2025
sig69 schreef op dinsdag 09 mei 2006 @ 10:30:
[...]
Dat zou eventueel wel te scripten zijn, en dan kan je waarschijnlijk wel met iets van synchronisatie gaan spelen wat standaard wel in windows zit. Maar hier heb ik niet zoveel verstand van, ben geen systeembeheerder. Verder zou ik de fileserver ook niet het kopieren laten initieren, maar de laptops. Die "weten" immmers wanneer ze er wel of niet bij kunnen.
Op het moment dat een contactpersoon gegevens opzoekt in de database is hij/zij per definitie online dus moet het kopieren ook geen probleem zijn (maar ik ben het met je eens dat vanuit de laptop wel veiliger en netter is).
[...]Uiteraard. Mits de rechten goed ingesteld zijn
Dan ga ik hier nog even over brainstormen met de mensen van serverbeheer; mogelijk dat hier nog wat mee te doen is dan....
Waar ik hier nu nog aan denk, is dat je dit misschien wel met een ActiveX plugin zou kunnen oplossen. Hier ben ik overigens niet zo bekend mee, en aangezien de laptops "dichtgetimmerd" zijn zal er vast wel ergens een rechten-issue opduiken maar dat moet wel op te lossen zijn.
Helaas ... activeX valt onder het internet beveiligingsbeleid en dat is op een dusdanig hoog niveau bepaald dat daar vrijwel geen uitzonderingen voor te regelen zijn...
offtopic:
Leuk, beetje brainstormen op dinsdag :Y)
offtopic:
Yup :D

Just because I'm paranoid, doesn't mean they're not watching me


Verwijderd

Lotus Notes is hier uitermate geschikt voor.

  • Alex)
  • Registratie: Juni 2003
  • Laatst online: 12-12-2025
Je kunt schrijven op een laptop vanaf een website wanneer je deze als HTA-applicatie bouwt, je krijgt dan namelijk net zo veel rechten als de ingelogde gebruiker.

Een HTA-applicatie is een HTML-file (evt. met framesets en andere sites) en een hoop Java/VB-script. Eén nadeeltje is dat de virusscanner hier wel flink over kan zeuren, en dat je alsnog een Openen/Opslaan-venster krijgt. (Kun je aanpassen via het register)

We are shaping the future


Verwijderd

Er zijn standaard DB sync tools, die dit kunnen bewerkstelligen.
eventueel zelfs met filters, vertegenwoordiger in Regio A krijgt alleen contacten uit Regio A.

Vraag is of op de centrale plek (server) dezelfde applicatie of in ieder geval een applicatie die tegen dezelfde DB draait als op de laptops?

Ik heb ooit een product mogen evaluaren, wat dit soort zaken aankon.
Het geheel draait eventueel als service en zodra de laptop gebruiker contact maakt met het lokale netwerk zal er een sync-request naar de server worden gedaan. Eventueel zelfs over een remote verbinding (indien gewenst).

Wat is je onderliggende centrale DB (ms-sql, oracle) en welke DB draait op de laptops?

[ Voor 8% gewijzigd door Verwijderd op 10-05-2006 01:55 ]


  • DaRealRenzel
  • Registratie: November 2000
  • Laatst online: 16:32

DaRealRenzel

Overtuigd Dipsomaan

ComShare Commence bedoel ik..... Die kan alles wat je wilt.

[ Voor 79% gewijzigd door DaRealRenzel op 10-05-2006 01:58 ]

Nothing is a problem once you've debugged the code


  • Chemist
  • Registratie: Juli 1999
  • Laatst online: 07-11-2025
Extra programmatuur zoals Commence of lotus notes is niet gewenst gezien de doorlooptijden (daarnaast is lotus notes vorig jaar europa breed uitgefaseerd; dat gaan we dus zeker niet voor elkaar krijgen ;)).

Zowel de centrale als de lokale database (van de applicatie) zijn geen standaard SQL gebasseerde oplossingen, maar alternatieven daarop (waarbij de lokale database de naam database niet eens mag hebben). Standaard synchronisatietools zijn dus ook niet echt mogelijk.

Ondertussen is er vanwege de tijdsdruk echter al het besluit genomen het venster met de vraag of het bestand opgeslagen of geopend moet worden voorlopig maar te accepteren en de hele interface weer om te bouwen op het moment dat de webservices beschikbaar worden.

Iedereen dus bedankt voor het meedenken en de genomen tijd !!

Just because I'm paranoid, doesn't mean they're not watching me

Pagina: 1