Hallo,
ich arbeite an einem Tool, um eine MS Access-Abfrage abzurufen und in einen Portal Feature Service zu transformieren. Es funktionierte eine Woche lang, aber jetzt funktioniert es nicht mehr. Es gibt ein spezifisches Problem...
Es gibt 20 Felder, die in der Access-Datenbank einfach eine 1 oder 0 enthalten. Wenn ich in CSV exportiere, sind alle Daten in diesen Feldern für jeden Datensatz entweder eine 1 oder eine 0. Mein Portal Feature Service ist für diese Werte in jedem dieser Integer-Felder mit einer Domäne (1=True, 0=False) vorbereitet. Als ich mein Workbench-Tool zuerst erstellt habe, funktionierte es. Ich hatte einen Access Reader, VertexCreator, CoordinateSystemSetter, Reprojector und den Portal Feature Service Writer.
Jetzt schreiben aus irgendeinem Grund alle meine 1-Werte als -1 (minus eins). Ich habe keine Ahnung warum. Wenn ich mir eine Tabelle anschaue, sehe ich jetzt "No" oder "-1". Die 0 (Null) wird richtig ausgegeben, aber die 1 wird zu -1 geändert.
Ich habe dieses Tool auseinander genommen und neue gebaut, aber ohne Erfolg.
Ich habe herausgefunden, dass der Feldtyp all dieser 1/0-Felder, die aus dem MS Access Reader kommen, als "[yesno]" definiert ist. Beim Überprüfen der Daten des Readers und jedes Transformers sehe ich Werte von "Yes" und "No" für jedes. Da offensichtlich die 0 korrekt in meinen Feature Service gelangt, dachte ich, ich könnte einfach den Writer öffnen und im Wert-Eintrag für jedes dieser Felder den Arithmetic Editor verwenden und [fieldname]*-1 schreiben. Hey, 0*-1=0 (keine Änderung) und -1*-1=1 (juhu, positive eins). ABER leider sagte es mir, dass ich einen String-Berechnungsfehler habe – kann "No"*-1 nicht rechnen. Also – wie wird das No zu 0 konvertiert und das Yes zu -1? (Ich bin jetzt wirklich verwirrt...)
Also fand ich den AttributeValueMapper und habe in einem Feld "Yes" auf 1 und "No" auf 0 abgebildet. Das Tool lief und es funktionierte.
Nun – muss ich einen AttributeValueMapper für weitere 19 Felder formatieren????
EDIT – Zurück im Büro versuche ich mehrere AttributeValueMapper hintereinander zu schalten und stelle fest, dass ich den neu geänderten Wert nicht so konfigurieren kann, dass er im nächsten AttributeValueMapper dem ursprünglichen Feld zugeordnet wird. Ich kann das "_looked_up"-Feld nicht an das korrekte Feld im nächsten anhängen.
rot repräsentiert Feld, das ich vom ersten AttributeValueMapper zum nächsten weitergeben möchte.
Kann ich einfach denselben Feldnamen im Destination Attribute verwenden, um sie zu verketten?

Das scheint nicht richtig zu sein.
Was übersehe ich?
Danke,
--Adam