Författare Ämne: Läsa info från fil i ett containerfält?  (läst 6499 gånger)

0 medlemmar och 1 gäst tittar på detta ämne.

Utloggad KoTTeN

  • Flitig postare
  • Antal inlägg: 183
    • Visa profil
    • Packing AB
Läsa info från fil i ett containerfält?
« skrivet: 1 februari, 2012, 21:28 »
Om jag lägger in ett textdokument (exempelvis .xml) i ett containerfält - finns det då något sätt för FMP att kunna hämta innehållet i textdokumentet för att ex. spara över informationen i en variabel?
Packing AB

Utloggad jennybalsta

  • Nykomling
  • Antal inlägg: 4
    • Visa profil
SV: Läsa info från fil i ett containerfält?
« Svar #1 skrivet: 2 februari, 2012, 08:23 »
Så vitt jag vet så kan filemaker bara se om ett containerfält innehåller data eller inte (is empty kommando). Jag använder iofs FM10adv, så i 11:an kanske det finns kommando för det.

Utloggad Carsten van Dyhr

  • Administratör
  • Flitig postare
  • Antal inlägg: 347
    • Visa profil
    • www.cdsoft.se
SV: Läsa info från fil i ett containerfält?
« Svar #2 skrivet: 2 februari, 2012, 09:23 »
Det finns ingen sådan funktion men det är klart att det går att trolla lite om man brukar lite våld.
Om du kör Mac skulle du exempelvis kunna skapa ett Apple script som fixar biffen.
Det kanske också finns någon plugg som löser det, docj känner inte jag till någon sådan.

Frågan är om inte det vore enklare för dig att stoppa in XML-koden från filen i ett textfält istället, men det har du ju säkert dina skäl till att du inte vill. Fördelen skulel annars vara att du kan redigera filen direkt i FMP samt att du skulle kunna exportera fältet till en fil om ett sådant behov finns.
Carsten Dyhr | CD Soft AB | www.cdsoft.se | 0706-15 08 90

mvRobert

  • Gäst
SV: Läsa info från fil i ett containerfält?
« Svar #3 skrivet: 2 februari, 2012, 09:34 »
Du kan exportera xml-filen från containern till temporär plats med med en sokväg där du använder Get ( TemporärSökväg ).
I nästa steg importerar du den med xml-importen.

Utloggad Carsten van Dyhr

  • Administratör
  • Flitig postare
  • Antal inlägg: 347
    • Visa profil
    • www.cdsoft.se
SV: Läsa info från fil i ett containerfält?
« Svar #4 skrivet: 2 februari, 2012, 09:56 »
Som Robert skriver, går det att "trolla" både fram och tillbaka med olika tekniker men i grund och botten så har inte FileMaker någon get funktion som fixar biffen typ: Get (ContainterFältInnehåll) åtminstone inte som jag känner till.

Om du gör en sökning på google eller liknande kommer du säkert att hitta flera hundra svar på hur du skulle kunna göra med ett specifikt filformat men frågan är om du inte skall tänka om , vill du verkligen ha in filerna i FileMaker och i givet fall måste de ligga i ett containerfält...  Jag säger inte att du tänker fel, men frågan är om du kanske går över ån efter vatten?






Carsten Dyhr | CD Soft AB | www.cdsoft.se | 0706-15 08 90

Utloggad KoTTeN

  • Flitig postare
  • Antal inlägg: 183
    • Visa profil
    • Packing AB
SV: Läsa info från fil i ett containerfält?
« Svar #5 skrivet: 2 februari, 2012, 16:24 »
Tack för alla goda svar - även om det var det jag inte hoppats på. :)

Frågan är om inte det vore enklare för dig att stoppa in XML-koden från filen i ett textfält istället...

Det är ett alternativ men jag vill helst undvika det då det blir något krångligare för användaren (öppna xml-filen, markera allt, kopiera och sedan klistra in det i FMP).

Du kan exportera xml-filen från containern till temporär plats med med en sokväg där du använder Get ( TemporärSökväg ).
I nästa steg importerar du den med xml-importen.

Det blir tyvärr samma problem - jag kommer inte åt texten. Jag skulle vilja manipulera innehållet innan jag importera den.

Det jag vill göra före varje import är att lägga till ett "fält" i xml-filens alla poster med ett unikt import id. Detta ID genereras från FMP. Dvs först skapas en post i en databas varpå jag får fram, via löpnummer, ett unikt ID. XML-filen manipuleras så att alla poster i filen bär det ID-nummret. Sedan importeras posten via manussteget "Importerar poster". Genom att märka posterna kan jag sedan lätt söka fram vilka poster som importerades och därefter behandla dessa ytterligare med ett script för att bl.a kontrollera att all data är rätt angivet.

Men nu när jag tänker på det - efter att man importerat poster med manussteget "importera poster" visas då de aktuellt importerade posterna? Dvs. jag skulle då i efterhand kunna loppa igenom de posterna och lägga in mitt import-ID-nummer.

... men frågan är om du kanske går över ån efter vatten?

Det är nog sant - jag får tänka om lite.

Packing AB

Utloggad RolfC

  • Flitig postare
  • Antal inlägg: 183
  • FileMaker-utvecklare sedan 1988
    • Visa profil
    • Mallverkstan
SV: Läsa info från fil i ett containerfält?
« Svar #6 skrivet: 2 februari, 2012, 17:03 »
Citera
Men nu när jag tänker på det - efter att man importerat poster med manussteget "importera poster" visas då de aktuellt importerade posterna? Dvs. jag skulle då i efterhand kunna loppa igenom de posterna och lägga in mitt import-ID-nummer.

Så är det. När du importerat är de importerade posterna hittade. Du kan då använda manussteget/kommandot Ersätt fältinnehåll för att sätta in ett unikt nummer på alla importerade poster.
Rolf Clausen | Mallverkstan.se | 046235250 | Certifierad FileMaker 7/8/10/11/12/13/14/15/16

Utloggad KoTTeN

  • Flitig postare
  • Antal inlägg: 183
    • Visa profil
    • Packing AB
SV: Läsa info från fil i ett containerfält?
« Svar #7 skrivet: 2 februari, 2012, 18:45 »
Så är det. När du importerat är de importerade posterna hittade. Du kan då använda manussteget/kommandot Ersätt fältinnehåll för att sätta in ett unikt nummer på alla importerade poster.

Fantastiskt! Nu blev det hela plötsligt mycket enklare. Tack för svaret!
 
Det problem som kvarstår för att fullända min funktion är begränsningen att enbart importera poster till en tabell åt gången. Jag har behov att under importen även lägga till poster i en relaterad tabell.

Den informationen tänkte jag istället sammanställa och infoga i huvudposten. Ex. i ett fält där varje rel. post skiljs åt med tecknet "¶". Och sedan via script efter importen loopa igenom informationen i fältet och skapa en relaterad post för varje förekomst.

Är det rätt tänk eller finns det något annat smidigare sätt att importera relaterade poster?
Packing AB

Utloggad David Wikström

  • Mycket flitig postare
  • Antal inlägg: 654
    • Visa profil
    • CamelCase data - FileMaker developers
SV: Läsa info från fil i ett containerfält?
« Svar #8 skrivet: 2 februari, 2012, 19:17 »
Jag vet inte om smidigt är rätta ordet, men jag har själv nyligen byggt en xml-"import" (från Final Cut Pro) som överhuvud taget inte använder FileMakers egen import-funktion. Detta eftersom jag behövde lägga till en massa specifik hantering i olika fall. Istället använder jag ett plugin skapat med 360Works ScriptMaster 4 Advanced. Jag hade tur nog att kunna återanvända de funktioner som kommer med demo-filen utan att själv ge mig ut på Groovy-äventyr. En funktion för att välja file, en för att läsa in filen, och en för att hämta rätt innehåll mha xpath. Samma princip lär fungera utmärkt om du vill skapa related poster - det är bara att skripta det hela efter önskemål.
Notera dock att detta är långsammare att köra än en riktig xml-import, så har du stora datamängder kan det bli långsamt. Då ska du kanske hellre skripta det hela så att du automatiskt kör flera xml-importer efter varandra med olika xslt för varje måltabell.
FileMaker 16/15/14/13/12/11/10/9/8 Certified Developer | FBA Member

Utloggad RolfC

  • Flitig postare
  • Antal inlägg: 183
  • FileMaker-utvecklare sedan 1988
    • Visa profil
    • Mallverkstan
SV: Läsa info från fil i ett containerfält?
« Svar #9 skrivet: 2 februari, 2012, 20:27 »
Citera
Är det rätt tänk eller finns det något annat smidigare sätt att importera relaterade poster?

Jag hade importerat samma fil till flera tabeller.
Rolf Clausen | Mallverkstan.se | 046235250 | Certifierad FileMaker 7/8/10/11/12/13/14/15/16

Utloggad KoTTeN

  • Flitig postare
  • Antal inlägg: 183
    • Visa profil
    • Packing AB
SV: Läsa info från fil i ett containerfält?
« Svar #10 skrivet: 2 februari, 2012, 20:32 »
Jag vet inte om smidigt är rätta ordet, men jag har själv nyligen byggt en xml-"import" (från Final Cut Pro) som överhuvud taget inte använder FileMakers egen import-funktion. ...plugin skapat med 360Works ScriptMaster 4 Advanced.

Det känns lite som samma problematik som jag har. Jag ska dock försöka att klara mig så långt det går utan plugin. Speciellt de som kostar pengar :).
Packing AB

Utloggad KoTTeN

  • Flitig postare
  • Antal inlägg: 183
    • Visa profil
    • Packing AB
SV: Läsa info från fil i ett containerfält?
« Svar #11 skrivet: 2 februari, 2012, 20:41 »
Citera
Är det rätt tänk eller finns det något annat smidigare sätt att importera relaterade poster?

Jag hade importerat samma fil till flera tabeller.

Menar du att man först importerar data till "huvudtabellen" (Sortera och strukturera datan med en XSL-formatmall) och därefter gör en ny data-import med samma XML,  men med en annan XSL-formatmall och då utifrån den relaterade tabellen?

Hur gör jag för att pussla ihop relationen mellan importerad data i "huvudtabellen" och posterna i den relaterade tabellen?

Vid import av poster i "huvudtabellen" får jag fram det unika ID-nummret som sedan måste anges i den relaterade tabellens poster.
Packing AB

Utloggad RolfC

  • Flitig postare
  • Antal inlägg: 183
  • FileMaker-utvecklare sedan 1988
    • Visa profil
    • Mallverkstan
SV: Läsa info från fil i ett containerfält?
« Svar #12 skrivet: 2 februari, 2012, 20:57 »
Det förutsätter förstås att det finns något som kopplar ihop huvudposter med relaterade poster i XML-filen. Finns inte det, utan kopplingen utgörs av t.ex. en hierarki i XML-filen kan man skapa id-nr med hjälp av XSLT som används vid båda importerna.
Rolf Clausen | Mallverkstan.se | 046235250 | Certifierad FileMaker 7/8/10/11/12/13/14/15/16

Utloggad KoTTeN

  • Flitig postare
  • Antal inlägg: 183
    • Visa profil
    • Packing AB
SV: Läsa info från fil i ett containerfält?
« Svar #13 skrivet: 2 februari, 2012, 21:52 »
Det förutsätter förstås att det finns något som kopplar ihop huvudposter med relaterade poster i XML-filen. Finns inte det, utan kopplingen utgörs av t.ex. en hierarki i XML-filen kan man skapa id-nr med hjälp av XSLT som används vid båda importerna.

Tack för svaret. I mitt fall måste relationen mellan huvudposten och de relaterade posterna vara genererade från FMP (löpnummer). Frågan är om man kan importera alla poster till huvudtabellen och sedan med XSLT importera alla relaterade poster till huvudpost 1. När importen är gjord tilldelar man rätt ID-nummer med manussteget/kommandot Ersätt fältinnehåll. Sedan loopar man importen av relaterade data tills alla huvudposter är körda.
Packing AB

Utloggad Robert

  • Seniormoderator
  • Flitig postare
  • Antal inlägg: 210
    • Visa profil
    • http://www.smartasystem.se
SV: Läsa info från fil i ett containerfält?
« Svar #14 skrivet: 2 februari, 2012, 22:30 »
Hur ser .xml-filen ut?

/Robert
Robert Eriksson | Smarta System | www.smartasystem.se | 042 - 27 00 15