Цитата:
Попробуйте написать вот так:
Code:
ASSIGN COMPONENT 'DIMID' OF STRUCTURE <L_S_OLD> TO <L_FILLFIELD>.
SELECT SINGLE SID_ПОЛЕ_ДРУГОГО ИЗМЕРЕНИЯ
FROM /BIC/D+ДРУГОЕ ИЗМЕРЕНИЕ
INTO L_SID
WHERE DIMID = <L_FILLFIELD>.
...
Спасибо за совет.
Я так и сделал. Только получилось, что DIMID в "/BIC/D+ОДНО ИЗМЕРЕНИЕ" и в "/BIC/D+ДРУГОЕ ИЗМЕРЕНИЕ" разный (499 и 1287), так что этот SELECT не помогает.
Возникла гораздо более критичная проблема. Когда я дебажил (спасибо Ash за совет!) присвоение, у меня вылетело с ошибкой (с кем не бывает?). Только после этого я не могу в "/BIC/D+ДРУГОЕ ИЗМЕРЕНИЕ" Повторным моделированием при наличии данных ни добавить любой новый признак, ни удалить существующий. Ругается: GETWA_NOT_ASSIGNED. Выдержка дампа:
Code:
|Фрагмент исходного текста программы |
----------------------------------------------------------------------------------------------------
|Строк|ИсхднТкст |
----------------------------------------------------------------------------------------------------
| 1|METHOD if_rscnv_operation~convert. |
| 8| FIELD-SYMBOLS: <l_s_oldtable> TYPE ANY. |
| 9| FIELD-SYMBOLS: <l_s_newtable> TYPE ANY. |
| 10| FIELD-SYMBOLS: <l_fillfield> TYPE ANY. |
| 11| FIELD-SYMBOLS: <l_addfield> TYPE ANY. |
| 12| DATA: l_r_fillfield TYPE REF TO data. |
| 13| DATA: l_r_addfield TYPE REF TO data. |
| 15| TRY. |
| 17| ASSIGN c_r_new->* TO <l_s_newtable>. |
| 20| ASSIGN COMPONENT p_addfieldnm OF STRUCTURE <l_s_newtable> TO <l_addfield>. |
| 22|* GET REFERENCE OF <l_fillfield> INTO l_r_fillfield. |
|>>>>>| GET REFERENCE OF <l_addfield> INTO l_r_addfield.
Если добавить новый признак в пустой куб, заполнить данными и попытаться Удалить данные(в rsa1), то вываливается DBIF_RSQL_SQL_ERROR. Выдержка:
Code:
|Указания по устранению ошибки |
| Database error text........: "ORA-00904: "SID_НОВОЕ ПОЛЕ": invalid identifier" |
| Internal call code.........: "[RSQL/INSR//BIC/DДРУГОЕ ИЗМЕРЕНИЕ ]" |
| Please check the entries in the system log (Transaction SM21). |
В продуктив пока не утащил, там потеря данных будет критичной, нужно разобраться в разработке.