Ga naar inhoud

Marsau

Leden
  • Items

    750
  • Registratiedatum

  • Laatst bezocht

Alles dat geplaatst werd door Marsau

  1. Marsau

    OttoFMS

    Ja, afgezien van de deploy/install actie doet een OttoFMS implementatie niets met andere servers. En de interne monitoring is ook beperkt, maar daarvoor is de integratie met FMS wel prettig. De tool van Mike Duncan is inderdaad ideaal als super-dashboard voor meerdere servers. De app wordt op zichzelf ook weer een platform waarop je beheersactiviteiten/zaken aangaande meerdere FMS-en naar eigen hand kunt automatiseren. Ik zou in de app een link maken naar de respectievelijke Ottootjes OttoFMS is overigens wel erg kritisch op omvang geheugen. Is het te krap, dan crasht een deployment of zelfs een installatie. Waarvan je overigens een keurige terugkoppeling krijgt - dat dan weer wel.
  2. Mooi resumé, Peter. Wat betreft snelheid/beschikbaarheid gelden natuurlijk de specificaties van de VPS en de bandbreedte (internetontsluiting, locatie...) . Wat dat betreft vind ik het aangeboden FMhosting veelal wat aan de magere kant. Of dit impliceert dat 'generieke servers' met betere specs ook beter presteren, weet ik niet. Wat dat betreft vind ik het ook een interessante vraag wat de geachte vakbroeders/zussen als minimale specificaties zien (in relatie tot gebruik / gebruikersgroep). Ook de benadering van Fabrice Nordmann met Docker (waarbij je FMS scheidt van het OS) is interessant, maar kosten- en performance voordeel is mij nog niet duidelijk.
  3. Een alternatief is natuurlijk het gebruik van een eenvoudige ExecuteSQL calculatie. Je hoeft dan geen extra relaties aan te maken.
  4. Beste mensen, het is bekend dat de FileMaker PHP API 'depreciated' is, en dat sinds een aantal versies ook niet meer in de standaard-installatie zit. Het wordt beschouwd als 'obsolete' technologie. Zie ook deze Claris Engineering Blog over dit onderwerp. Dat is voor een klant van mij met uitgebreide PHP websites een reden om vast te houden aan versie <19.4. Er is weinig animo om de sites geschikt te maken voor de FM Data API Maar... voor zover ik tot nu toe heb begrepen werkt het nog wel onder de laatste FMS versie ( 20.3.2.205) , mits je het juiste PHP-pakket op de juiste wijze installeert. Ik ben benieuwd of jullie dit kunnen bevestigen; wellicht hebben jullie een PHP-implementatie op een FMS in beheer...
  5. Een nabrandertje: je kan het 'plat slaan' door de zaken wat uiteen te leggen. Elk 'nieuw' project is òf een follow-up (sub-nummer + 1) of een echt nieuw project: (laatste basisnummer + 1). Dat zou geen hoofdpijn mogen veroorzaken.
  6. In zekere zin voldoet elke VPS en kan je je afvragen wat FMHosting specifiek maakt. Bepaalde specificaties? Die indruk heb ik niet als ik kijk naar wat ze aanbieden. Vanuit dat oogpunt vind ik genoemde hostingpartijen best duur. Verschillende machines bij TransIP in verschillende prijsklassen: max € 147 excl. per mnd (Windows Server 2022) en Linux ( €26,- excl per mnd). En ook een linux VPS bij Strato voor € 14,88 excl. per mnd (16GB, 6 cores en 500GB). Vooral als ontwikkelmachine. Het werkt gewoon. Alles zelf doen, uiteraard.
  7. Ik heb wel eens een corrupt font wonderlijke dingen zien doen. Dat zou een systeem-specifieke oorzaak verklaren. Wild guess!
  8. Marsau

    OttoFMS

    360works Deploy gebruikt idd de FM Data Migration tool. OttoFMS is geweldig, kan ik nu zeggen. Nog los van de deployment, vind ik de 'schil' die op FMS wordt gelegd een waardevolle aanvulling (of lees: een verbetering ten opzichte van de Claris console): want direct bestanden openen, uploaden en downloaden, het onderling verbinden van FMS-en voor deployments, en meer... Ik ben er echt erg enthousiast over. Voor onze FMserver onder een SBA-licentie met tientallen klant-applicaties die we nu updaten met 360Works deploy, overwegen we nu een overstap naar Otto Deploy.
  9. Welkom terug. Ik zou het doen, Karsten. Zeker als je de Nederlandse markt wilt betreden.
  10. Dank, Menno. Het werkt! Maar wie had anders verwacht? 😃
  11. Marsau

    OttoFMS

    Inderdaad, geweldig. De (niet equivalente) alternatieven zijn betaald. Denk aan Deploy van 360Works, waar ik nu nog intensief mee werk.
  12. Het is een mooie functie. Ik had problemen met een mailserver dat geen "ë" in het adres accepteert. De CF haalt deze er niet uit en het is mij niet duidelijk hoe je dan dat voorkomt. Ik gebruik dan een andere functie om de alle accenten eruit te halen. Verder struikelt de functie als je adressen hebt als "Voornaam Achternaam <mail@ergens.com>". Ik heb een kleine toevoeging gemaakt dat in dit geval het adres splitst, het mailadres-gedeelte toetst en indien ok, het volledige adres herstelt. Let ( [ addresslist = Substitute ( MailSendItems::Email ; [ "; " ; ¶ ] ; [ ";" ; ¶ ] ; [ ", " ; ¶ ]; [ "," ; ¶ ] ) ; found = ValueCount ( addresslist ) ; specialchars = ".!#$%&'*+-/=?^_`{|}~0123456789@" ; regularchars = While ( [ i = 64 ; include = "" ; /* empty or Greek or Cyrillic (Russia, Ukraine, Belarus, Serbia) */ regular = "" /* No numbers, signs or symbols */ ] ; i < Case ( IsEmpty ( include ) ; 382 ; /* European excl. Greek and Cyrillic */ include = "Greek" ; 969 ; /* European + Greek */ include = "Cyrillic" ; 1119 ; /* European + Greek + Cyrillic */ 0 ) ; [ i = i + Case ( i = 90 ; 7 ; /* Latin capital */ i = 122 ; 70 ; /* Latin lowercase */ i = 214 ; 2 ; /* Diacritics capital */ i = 246 ; 2 ; /* Diacritics lowercase */ i = 382 ; 531 ; /* Greek capital */ i = 937 ; 8 ; /* Greek lowercase */ i = 969 ; 55 ; /* Russian. Ukrainian, Serbian and Belarussian */ 1 ) ; regular = regular & Char ( i ) ] ; regular ) ; allowedchars = specialchars & regularchars ; validaddresses = While ( [ result = "" ; x = 0 ] ; x < found ; [ x = x + 1 ; probe = Trim ( GetValue ( addresslist ; x ) ) ; a = Let ( [ p = Position ( probe ; " <"; 1; 1 ) ; r = Right ( probe; 1 ) = ">" and p ] ; If ( r ; GetValue ( Replace ( Left ( probe; Length ( probe ) - 1 ) ; p ; 2 ; ¶ ); 2 ) ; probe ) ); b = Filter ( a ; allowedchars ) ; c = GetValue ( FilterValues ( a ; b ) ; 1 ) ; /* may not be empty */ d = Right ( c ; Length ( c ) - Position ( c ; "@" ; Length ( c ) ; -1 ) ) ; /* Fqdn */ e = Left ( c ; Position ( c ; "@" ; 1 ; 1 ) - 1 ) ; /* Localpart */ f = Right ( d ; Length ( d ) - Position ( d ; "." ; Length ( d ) ; -1 ) ) ; /* TLD */ g = ( Length ( d ) - Position ( d ; "." ; Length ( d ) ; -1 ) >= 2 ) ; h = ( PatternCount ( c ; ".." ) = 0 ) ; i = ( PatternCount ( c ; "@" ) = 1 ) ; j = PatternCount ( d ; "." ) ; k = ( Left ( d ; 1 ) ≠ "." ) ; l = ( Left ( e ; 1 ) ≠ "." ) ; m = ( Right ( d ; 1 ) ≠ "." ) ; n = ( Right ( e ; 1 ) ≠ "." ) ; o = ( Length ( c ) <= 254 ) ; p = ( Length ( e ) <= 64 ) ; q = Exact ( f ; Filter ( f ; regularchars ) ) ; result = List ( result ; Case ( not ( g and h and i and j and k and l and m and n and o and p and q ) ; ""; probe <> a; probe; a ) ) ] ; result ) ] ; validaddresses )
  13. Inderdaad interessant, en wellicht ook precies een oplossing voor dit probleem. Maar vind het toch weinig aanlokkelijk. Maar toch: in FileMaker hebben we alle bouwstenen om dit zelf te bouwen, op dit laatste stukje na.
  14. Ha, leuk om te zien, dank je wel. Vind het steeds een fascinerende vraag: hoe organiseer je de logica binnen een applicatie? Het is prachtig om voor een bepaald stuk functionaliteit een generieke, herbruikbare module te bouwen met gedetailleerde (json) parameterisering. De voordelen zijn duidelijk. Tegelijk is er ergens een omslagpunt: dat je beter wat kunt opsplitsen om meer complexe routines snel neer te zetten, of dat je bepaalde logica gewoon elders moet neerleggen, omdat het dan beter aansluit op andere zaken. Ik geef hier toch de voorkeur aan aparte sub-scriptjes, omdat de print-instellingen in de scriptstappen worden opgeslagen. Eén keer de verkeerde openen op een bepaalde machine, en je moet terug naar het betreffende werkstation om te herstellen.. Het is toch wel stom dat we dit niet dynamisch kunnen scripten. In serieuze productieomgevingen met meerdere labelwriters en printers heb je dit gewoon nodig. Volgens mij is er t.a.v. deze scriptstappen sinds begin jaren 90 helemaal niets veranderd.
  15. Dank voor jullie reacties. Wat ik nu doe: - inderdaad één enkel centraal basisscript met een $printtype (labeltje, papierformaat) als parameter, volledig gericht op de print-opdracht. - dit script stuurt een subscript aan op naam: "print " & $printtype & " " & get ( persistentID) - het subscript moet dan bestaan, anders wordt een generieke printopdracht uitgevoerd met open dialogen. - het subscript stelt de Printer-instelling en voert vervolgens de eigenlijke printopdracht uit, als de persistentID ook klopt. Geen dialogen. Dit werkt op zich goed. Het nadeel is natuurlijk dat je voor elk werkstation waar specifieke printers zijn gewenst een apart script moet maken voor de prints. Je zou dit soort configuratie-dingetjes natuurlijk liever in de interface regelen.
  16. Beste guru's, Wat is de beste wijze om dynamisch tot een printerkeuze/instelling te komen, zodat je deze per machine/job en wellicht zelfs gebruiker kan aansturen? Zijn we echt nog steeds aangewezen op dure plugin's? Ik kom niet verder dan per machine een eigen script vast te leggen; niet bepaald dynamisch dus. Any thoughts?
  17. Ik heb twee instanties van FileMaker op een Mac Studio, laatste versie macOS etc., en ik dacht ze allebei met de updater naar de laatste versie gebracht te hebben. Ik denk dat de update niet correct is uitgevoerd, want bij één van de apps werd de update weer aangeboden. Het probleem is nu opgelost. Kennelijk zat ik toch nog in de vorige versie. Hoewel ik versie echt wel gecheckt had.
  18. Dag Menno, ik pas steeds weer de toolbar aan. Even werden knoppensetje voor bladeren vastgehouden, zoals we mogen verwachten. Daarna kan je deze actie herhalen; steeds krijg je weer de lege toolbar. 😡
  19. Ik was even blij, maar het probleem is gebleven. Bladeren in layout-modus werkt bij mij nog steeds niet stabiel.
  20. Marsau

    Max(lidnr)

    Op het moment dat je calculatie geëvalueerd wordt, krijg je 420? Dat betekent dat de verwijzing niet klopt. En idd.: met globale opslag is ook een her-calculatie niet gegarandeerd. Om de ‘Max’ functie te laten werken moet ie verwijzen naar een andere tabel occurance. Of gebruik ‘ExecuteSQL’ om het laatste lidnummer te vinden.
  21. While ( [ d = Date ( 1 ; 1 ; 2024 ) ; end = Date ( 1; 5 ; 2024 ) ; result = "" ] ; d ≤ end ; [ result = List ( result; getastext ( d) ) ; d = d + 1 ] ; result )
  22. Als het op specifieke machines en vanaf een specifieke layout niet werkt, dan lijkt het me zinvol om op de betreffende machine even kopie te maken van de layout en systematisch alle fonts op de layout na te lopen, en zo de boosdoener te isoleren. Daarna het betreffende font vervangen en correct installeren.
  23. Gevoelige data aan een Excel bestand toevertrouwen lijkt me sowieso een request for trouble. Ik meen dat de 'beveiliging' van Excel niet zozeer betrekking heeft op data-toegang, als wel het voorkomen van ongeoorloofde wijzigingen. Dus ik ben eigenlijk niet zo verbaasd. Overigens kan je met plugins wel specifiekere data-imports scripten. Ik denk vooral aan Scribe van 360Works, en ook MBS (hoewel daar ook weer iets aanvullends nodig is, als ik me niet vergis). En aangezien een xlsx in essentie een gezipte xml file is, denk dat er ook native wel wat valt te hacken.
  24. Ik heb de indruk dat het relevante gedeelte niet is afgebeeld in het screenshot van je script. check met de debugger. Kennelijk gaat er iets mis met de parameters richting Woo.
×
×
  • Nieuwe aanmaken...