Am o componentă de regulă care ar trebui să preia un număr întreg dintr-o proprietate a unei entități numită „Curs” (proprietatea ECK). Această proprietate nu este o referință la entitate, ci un număr întreg. Folosesc această proprietate pentru a seta numărul de cursuri „clonate” pe „ID-ul de curs inițial” odată ce o entitate a cursului este „clonată”. Clonarea funcționează, dar componenta mea funcționează NUMAI DACĂ o folosesc în Entitatea View VBO ca o acțiune. Acolo pur și simplu selectez un curs care are o valoare validă [original-course-id] și apoi declanșez acea regulă de componentă.
Asta merge.
Dar componenta nu funcționează când este integrată în regulă. Iată structura:
Regula principală: o entitate a fost semnalată. (asta functioneaza)
=> componenta 1 (în cadrul acestei reguli principale): clonează cursul (funcționează)
=> componenta 2 (în interiorul acestei componente 1) A face:
- „preluare entitate după ID” („id-ul-curs-original”, din clonă, adică [cursul-clonat:id-ul-curs-original])
- „set data value”: „the-fetched-course-id:total-course-bookings” valoare nouă „the-fetched-course-id:total-course-bookings”, adăugați o compensare: 1.
Deci, de ce funcționează în VBO-ul meu Views, dar nu în regula în sine acolo unde am nevoie de el.
Când sunt integrate în regula principală, variabilele (parametrii) sunt:
- semnalizare-utilizator
- marcat-curs
Când sunt integrate în Componenta 1, variabilele (parametrii) sunt:
- the-fresh-course (cursul clonat)
Ceea ce se întâmplă cu adevărat în integrarea regulii este că atunci când preia entitatea după ID (original-course-id), ia ID-ul entității din CLONE, dar nu ID-ul din proprietate [the-original-course-id] . De ce? L-am preluat și Views VBO confirmă asta.
Iată codul acelei componente 2:
{ "rules_upon_first_booking_update_the_original_course" : {
„LABEL” : „La prima rezervare, actualizați cursul inițial”,
„PLUGIN” : „regulă”,
"OWNER" : "reguli",
„TAGS” : [ „rezervare”, „prima rezervare”, „Curs original”, „actualizare”, „actualizare” ],
„NECESIT” : [ „reguli” ],
„USS VARIABLES” : { „the_fresh_course” : { „label” : „The Fresh Course”, „type” : „course” } },
„DO” : [
{ "entity_fetch" : {
„USING” : { „type” : „curs”, „id” : [ „the-fresh-course:original-course-id” ] },
"PROVIDE" : { "entity_fetched" : { "the_fetched_original_course" : "Cursul original preluat" } }
}
},
{ "data_set" : {
"data" : [ "the-feched-original-course:total-course-bookings" ],
„valoare” : {
„select” : „cursul-original-preluat:total-rezervări-curs”,
„num_offset” : { „valoare” : „1” }
}
}
}
]
}
}
Cine poate ajuta?