Inhalte aufrufen

Profilbild
1 Stimmen

OData WebApi ManageAttributes funktioniert nicht korrekt

webapi odata manageattributes

  • Bitte melden Sie sich an, um eine Antwort zu verfassen.
3 Antworten zu diesem Thema

#1 machine86

machine86

    Newbie

  • Members
  • 6 Beiträge

Geschrieben: 18 October 2016 - 08:17

Hallo zusammen,

 

ich habe ein Problem mit der WebApi, welches ich nicht gelöst bekomme.

Ich versuche, einem Produkt Attribute hinzuzufügen. Das klappt auch. Jedoch scheint das "Synchronize" nicht den gewünschten Effekt zu haben.

Mein Request sieht wie folgt aus:

 

Path: /Products(199)/ManageAttributes

JSON:

{
"Synchronize":true,
"Attributes":
    [{
        "Name":"Vorname",
        "IsRequired":true,
         "ControlTypeId":4
     },
     {
        "Name":"Nachname",
        "IsRequired":true,
        "ControlTypeId":4
     }, 
     {
        "Name":"Adresse",
        "IsRequired":true,
        "ControlTypeId":10
     }, 
     {
        "Name":"Gültigkeitsdatum",
        "IsRequired":true,
        "ControlTypeId":20
     }]
}

Die Attribute werden auch hinzugefügt. Laut Doku sollten sie auch bei einem zweiten Aufruf bestehen bleiben. Sie verschwinden aber alle wieder. Ein weiterer Aufruf lässt sie dann wieder auftauchen.

Wenn ich die Doku richtig verstehe, sollte ein Attribute aber nur dann verschwinden, wenn ich es aus dem JSON entferne. Quasi wenn ich die Adresse rausnehme, verschwindet sie und die anderen Attribute bleiben da.

Was dann aber passiert ist: Alle Attribute AUSSER der Adresse verschwinden.

 

Kann mir jemand helfen?

 

Vielen Dank,

Sebastian



#2 Marcus Gesing

Marcus Gesing

    SmartStore AG

  • Administrators
  • 3383 Beiträge

Geschrieben: 18 October 2016 - 11:55

Die Ursache liegt wahrscheinlich daran, dass Sie keine Values angegeben haben (s. Bsp. in der Dokumentation). In dem Fall - immer vorausgesetzt Synchronize ist True - entfernt die API das Attribut wieder.


Schöne Grüße aus Düsseldorf,
Marcus Gesing


#3 Marcus Gesing

Marcus Gesing

    SmartStore AG

  • Administrators
  • 3383 Beiträge

Geschrieben: 18 October 2016 - 13:36

Ich werde das Verhalten abändern, d.h. im Fall, wo keine Werte benötigt werden (z.B. bei einem Eingabefeld oder Datumsauswahl) wird das Attribut zukünftig trotz Synchronize nicht mehr gelöscht.


Schöne Grüße aus Düsseldorf,
Marcus Gesing


#4 machine86

machine86

    Newbie

  • Members
  • 6 Beiträge

Geschrieben: 26 October 2016 - 06:42

Hi,

 

sorry für die späte Rückmeldung. Und erstmal vielen Dank für die schnelle Antwort!

Selbst wenn ich Values mit Dummy-Werten übergebe, funktioniert es nicht wie gewünscht. Ich habe mir jetzt einen kleinen Workaround gebaut, der für unsere Anwendung funktioniert.

Wenn das Synchronize dann in einer der nächsten Versionen gut funktioniert, wäre ich dennoch höchst erfreut, da ich mir dann 2 Roundtrips über API und DB sparen kann.

 

Beste Grüße,

Sebastian




Auch markiert mit einem oder mehrerer dieser Schlüsselwörter: webapi, odata, manageattributes