NÃO É ESSE DOMÍNIO QUE ESTAMOS FALANDO SEU ANIMAL!!! KKKKK
Caramba!!! Que Ogro!!!
Bom, a primeira pergunta é... Porquê e quando vou utilizar isto? Vcs devem me achar louco né? Acertaram! Eu sou =)
Mas pensa comigo... Você tem um relatório ou uma SM30, e tem um campo que precisa de matchcode, MAS os valores deste campo são variáveis.
Pensou já? Qual seria sua solução?
TEEEEEEMPO......
...
...
...
Ok vai, vou te ajudar...
Primeiro, sua tabela precisa ter um campo que referencie um elemento de dados com domínio. Pelamor de Deus, ELEMENTO E DOMÍNIO Z. Nada de sair alterando standard heim Zé!
Ok... Vamos chamar a tabela de ZSAPEIROS e o domínio de ZDSAPEIROS neste exemplo.
REPORT ZSAPeiros.
* Declaração de tabelas e estruturas
DATA:
w_dd01v TYPE dd01v, "Cabeçalho do domínio
t_dd07v TYPE TABLE OF dd07v, "ïtens do domínio
w_dd07v TYPE dd07v. "ïtens do domínio
* Elimina dados do elemento
CALL FUNCTION 'DD_DOMA_DEL'
EXPORTING
domname = 'ZDSAPEIROS'
del_state = 'M'
prid = 0.
* Popula o cabeçalho do domínio
w_dd01v-domname = 'ZDSAPEIROS'.
w_dd01v-ddlanguage = sy-langu.
w_dd01v-datatype = 'CHAR'.
w_dd01v-leng = '10'.
w_dd01v-valexi = 'X'.
w_dd01v-ddtext = 'SAPeiros'.
w_dd01v-as4user = sy-uname.
* Popula os ítens do domínio
DO 10 TIMES.
w_dd07v-domname = 'ZDSAPEIROS'.
w_dd07v-valpos = sy-index.
w_dd07v-ddlanguage = 'PT'.
w_dd07v-domvalue_l = sy-index.
CONDENSE w_dd07v-domvalue_l NO-GAPS.
CONCATENATE 'Sapeiros' w_dd07v-domvalue_l
INTO w_dd07v-ddtext SEPARATED BY space.
APPEND w_dd07v TO t_dd07v.
CLEAR w_dd07v.
ENDDO.
* Atualiza o domínio
CALL FUNCTION 'DD_DOMA_PUT'
EXPORTING
dd01v_wa = w_dd01v
domain_name = 'ZDSAPEIROS'
prid = '0'
ctrl_doma_put = 'N'
TABLES
dd07v_tab = t_dd07v
EXCEPTIONS
illegal_value = 1
op_failure = 2
object_inconsistent = 3
OTHERS = 4.
IF sy-subrc IS INITIAL.
* Se atualizou, ativa o domínio
CALL FUNCTION 'DD_DOMA_ACTIVATE'
EXPORTING
doma_name = 'ZDSAPEIROS'
auth_chk = ''
prid = 0.
ELSE.
* Se não atualizou, elimina os dados do domínio
CALL FUNCTION 'DD_DOMA_DEL'
EXPORTING
domname = 'ZDSAPEIROS'
del_state = 'M'
prid = 0.
ENDIF.
Iae? Vai lá no seu relatório ou até mesmo na tabela e da uma olhadinha no campo.