diff --git a/src/components/ADempiere/Field/FieldSelect.vue b/src/components/ADempiere/Field/FieldSelect.vue index fba344dd..73ab85cb 100644 --- a/src/components/ADempiere/Field/FieldSelect.vue +++ b/src/components/ADempiere/Field/FieldSelect.vue @@ -49,7 +49,7 @@ export default { blanckOption: { // label with '' value is assumed to be undefined non-existent label: ' ', - key: undefined + key: undefined || -1 } } }, @@ -106,6 +106,10 @@ export default { }, 'metadata.value'(value) { if (!this.metadata.inTable) { + if (!this.options.some(option => option.key === value)) { + this.value = value + this.getDataLookupItem() + } this.value = value } }, diff --git a/src/store/modules/ADempiere/calloutControl.js b/src/store/modules/ADempiere/calloutControl.js index 27c392d6..23fc526f 100644 --- a/src/store/modules/ADempiere/calloutControl.js +++ b/src/store/modules/ADempiere/calloutControl.js @@ -40,11 +40,17 @@ const callOutControl = { windowNo: window.windowIndex }) .then(calloutResponse => { + const newValues = {} + Object.keys(calloutResponse.values).forEach(key => { + if (calloutResponse.values[key] !== undefined) { + newValues[key] = calloutResponse.values[key] + } + }) if (inTable) { dispatch('notifyRowTableChange', { parentUuid, containerUuid, - row: calloutResponse.values, + row: newValues, isEdit: true }) } else { @@ -52,7 +58,7 @@ const callOutControl = { parentUuid, containerUuid, panelType: 'window', - newValues: calloutResponse.values, + newValues, isSendToServer: false, withOutColumnNames, isSendCallout: false