Cómo agrupar la lógica empresarial en una vista de negocio

Cómo:

Referencia:

La vista de negocio quedan almacenadas como si fuera un archivo máster, real. Sin embargo, no tiene atributo SUFFIX. En cambio, contiene un atributo VIEW_OF que apunta a su archivo máster subyacente. Cuando la vista de negocio se emplea en una solicitud, toda la información de los campos y de seguridad proviene del archivo máster original. Si el campo pertenece a un segmento de referencia cruzada, en el archivo máster original, toda la información clave y de segmento de referencia cruzada permanece en el archivo máster original.

La vista de negocio puede asignarse a una aplicación diferente desde el archivo máster original, lo que aporta seguridad e integridad a las aplicaciones, en forma de restricciones APP PATH sobre distintas vistas de negocio.

Las vistas de negocio están organizadas en "pseudo-segmentos", denominados carpetas. Cada carpeta puede contener un grupo de campos u otras carpetas. La carpeta también puede estar vacía. Los campos de una carpeta pueden provenir de distintos segmentos del archivo máster original. Si los campos no están situados a lo largo de una ruta única, en el archivo máster original, y su solicitud incluye campos de rutas diferentes, en el archivo máster original, puede que se generen mensajes de advertencia al ejecutar la solicitud.

Una vista de negocio puede incluir campos reales, valores calculados (COMPUTE), campos virtuales (DEFINE) y filtros del archivo máster original.

Las vistas de negocio resultan especialmente útiles para la visualización de orígenes de datos relacionales y de FOCUS. No se recomienda usarlas frente a orígenes de datos de cubo, ya que eliminan la capacidad de drill down.

En la vista de negocio, puede utilizar los nombres de los campos y segmentos del archivo máster original o asignar nuevos nombres de campo. Al ejecutar una solicitud frente a una vista de negocio, en la que no coincide ningún nombre con los del archivo máster original, la solicitud atraviesa un proceso de transformación para sustituir el nombre real. Para activar este proceso de traslación de nombres, el comando SET FOCTRANSFORM=ON debe estar en vigor antes de emitir un comando TABLE, DEFINE o JOIN, cuando el nombre de algún campo de la vista de negocio no coincida con el del campo real.


Principio de página

x
Sintaxis: Cómo Habilitar la traducción de nombres en vistas de negocio
SET FOCTRANSFORM={ON|OFF}

donde:

ON

Convierte todas las referencias de campo y segmento a las entidades correspondientes del archivo máster real. ON es el valor predeterminado.

OFF

No convierte referencias de campo y segmento.


Principio de página

x
Sintaxis: Cómo Definir una vista de negocio
FILE = bv_name, VIEW_OF=real_mf 
    [, REMARKS|DESC="default_desc" 
    [, DESC_ln="desc_for_ln" ...]] $ 
 SEGMENT = folder_name , [PARENT=parent_folder_name  
     [, DESC = "default_desc", 
     [DESC_ln="desc_for_ln" ...]]] $ 
   [FIELD = bv_field_name, [ALIAS=real_field_name] , 
     [BELONGS_TO_SEGMENT= real_segment_name]  ,  
     [, TITLE = "default_title" 
     [, TITLE_ln="title_for_ln" ...]]]
     [, DESC="default_desc" 
     [, DESC_ln="desc_for_ln" ...], $]]
   [FIELD ...   ]
 [SEGMENT ...     ]

donde:

bv_name

Es el nombre que le asigna a la vista.

real_mf

Es el nombre del archivo máster original.

folder_name

Es el nombre de un segmento virtual de la vista. Las carpetas vacías están permitidas.

parent_folder_name

Es el nombre del principal de un segmento virtual.

bv_field_name

Es el nombre de campo que ud. asigna. El nombre de campo puede ser igual o distinto al del campo real. Si es diferente, el campo real queda identificado por el atributo ALIAS.

real_field_name

Es el nombre del campo del archivo máster original. Este campo puede ser un campo real, virtual o un valor calculado. Si bv_field_name coincide con real_field_name, se puede omitir el atributo ALIAS. Si no se ha especificado ningún ALIAS, el nombre de campo de la vista de negocio debe coincidir con el nombre de campo del archivo máster original.

real_segment_name

Es el nombre del segmento en el que reside el campo, dentro del archivo máster original. Si el nombre de campo real es único, en el archivo máster original, puede omitirse el atributo BELONGS_TO_SEGMENT. Si BELONGS_TO_SEGMENT no está disponible y el nombre de campo no es único, en el archivo máster original, se utiliza el primer campo que coincida con un nombre de campo del archivo máster original.

default_title

Es el título de columna utilizado cuando el parámetro LANG está configurado en el idioma predeterminado del servidor, o se ha configurado otro idioma, pero el archivo máster no contiene el atributo correspondiente TITLE_ln de ese campo. También se usa este título cuando el valor ln no es válido.

default_desc

Es el texto descriptivo utilizado cuando el parámetro LANG está configurado en el idioma predeterminado del servidor, o se ha configurado otro idioma, pero el archivo máster no contiene el atributo correspondiente DESC_ln de ese campo. También se usa esta descripción cuando el valor ln no es válido. Esta descripción muestra la interfaz frontal de usuario.

ln

Especifica el idioma para el que se aplica el título o descripción. Los valores válidos de ln son las abreviaciones de código de idioma de dos letras ISO 639.

title_for_ln

Es el título utilizado cuando el parámetro LANG está configurado en un idioma no predeterminado de servidor y el archivo máster contiene un atributo TITLE_ln correspondiente, donde ln es el código de dos dígitos del idioma especificado por el parámetro LANG.

desc_for_ln

Es la descripción utilizada cuando el parámetro LANG está configurado en un idioma no predeterminado de servidor y el archivo máster contiene un atributo DESC_ln correspondiente, donde ln es el código de dos dígitos del idioma especificado por el parámetro LANG.


Principio de página

x
Referencia: Idiomas y códigos de idioma

Nombre del idioma

Código de idioma de dos letras

Abreviación de idioma de tres letras

Arabic

ar

ARB

Báltico

lt

BAL

Chino - Simplificado GB

zh

PRC

Chino - Tradicional Big-5

tw

ROC

Checo

cs

CZE

Danés

da

DAN

Dutch

nl

DUT

Inglés - Americano

en

AME o ENG

Inglés - UK

uk

UKE

Finnish

fi

FIN

Francés - Canadiense

fc

FRE

Francés - Estándar

fr

FRE

Alemán - Austríaco

en

GER

Alemán - Estándar

de

GER

Greek

el

GRE

Hebrew

iw

HEW

Italian

it

ITA

Japonés - Shift-JIS(cp942) en ascii cp939 en EBCDIC

ja

JPN

Japonés - EUC(cp10942) en ascii (UNIX)

je

JPE

Coreano

ko

KOR

Noruego

no

NOR

Polish

pl

POL

Portugués - brasileño

br

POR

Portugués - Portugal

pt

POR

Ruso

ru

RUS

Español

es

SPA

Sueco

sv

SWE

Tailandés

th

THA

Turco

tr

TUR



x
Referencia: Notas de uso para Vistas de negocio


Ejemplo: Cómo crear una vista de negocio

La siguiente vista de negocio del origen de datos EMPLOYEE está compuesta de tres carpetas:

Tenga en cuenta que ya existe un campo llamado JOBCODE en las carpetas 2 y 3. El atributo BELONGS_TO_SEGMENT distingue entre el campo JOBCODE del segmento PAYINFO y el campo JOBCODE del segmento JOBSEG, en el archivo máster EMPLOYEE.

La tabla siguiente muestra el archivo máster de la vista de negocio y los segmentos asociados del archivo máster EMPLOYEE:

Vista de negocio

Archivo máster de EMPLOYEE

FILENAME=EMPLOYEE_BV01, 
VIEW_OF=baseapp/employeeEMPLOYEE, $
FILENAME=EMPLOYEE, SUFFIX=FOC
SEGMENT=FOLDER1, $
 
FIELDNAME=EMP_ID, ALIAS=EMP_ID,
  BELONGS_TO_SEGMENT=EMPINFO, $
 
FIELDNAME=LAST_NAME, ALIAS=LAST_NAME,
  BELONGS_TO_SEGMENT=EMPINFO, $
 
FIELDNAME=FIRST_NAME,
  ALIAS=FIRST_NAME,
  BELONGS_TO_SEGMENT=EMPINFO, $
 
 
 
FIELDNAME=DEPARTMENT, 
ALIAS=DEPARTMENT,
  BELONGS_TO_SEGMENT=EMPINFO, $
 
FIELDNAME=CURR_SAL, ALIAS=CURR_SAL,
  BELONGS_TO_SEGMENT=EMPINFO, $
 
FIELDNAME=CURR_JOBCODE,
  ALIAS=CURR_JOBCODE,
  BELONGS_TO_SEGMENT=EMPINFO, $
SEGNAME=EMPINFO,  SEGTYPE=S1
 
 FIELDNAME=EMP_ID, ALIAS=EID,
   FORMAT=A9, $
 
FIELDNAME=LAST_NAME,ALIAS=LN,
   FORMAT=A15,$
 
FIELDNAME=FIRST_NAME,ALIAS=FN,
   FORMAT=A10,$
 
 
 FIELDNAME=HIRE_DATE,ALIAS=HDT, 
   FORMAT=I6YMD,$
FIELDNAME=DEPARTMENT,
   ALIAS=DPT,FORMAT=A10,$
 
 
FIELDNAME=CURR_SAL,ALIAS=CSAL,
   FORMAT=D12.2M,$
 
FIELDNAME=CURR_JOBCODE,
  ALIAS=CJC,FORMAT=A3,$
 
FIELDNAME=ED_HRS,  ALIAS=OJT, 
  FORMAT=F6.2,$

El segmento no está incluido en la vista de negocio.

SEGNAME=FUNDTRAN, SEGTYPE=U,
  PARENT=EMPINFO
FIELDNAME=BANK_NAME, ALIAS=BN,
  FORMAT=A20,$
FIELDNAME=BANK_CODE, ALIAS=BC,
  FORMAT=I6S,      $
FIELDNAME=BANK_ACCT,
  ALIAS=BA, FORMAT=I9S,$
FIELDNAME=EFFECT_DATE,
  ALIAS=EDATE,FORMAT=I6YMD,$
SEGMENT=FOLDER3, PARENT=FOLDER1, $
 
 
FIELDNAME=DAT_INC, ALIAS=DAT_INC,
  BELONGS_TO_SEGMENT=PAYINFO, $
 
FIELDNAME=PCT_INC, ALIAS=PCT_INC,
  BELONGS_TO_SEGMENT=PAYINFO, $
 
FIELDNAME=SALARY, ALIAS=SALARY,
  BELONGS_TO_SEGMENT=PAYINFO, $
 
FIELDNAME=JOBCODE, ALIAS=JOBCODE,
  BELONGS_TO_SEGMENT=PAYINFO, $
SEGNAME=PAYINFO,SEGTYPE=SH1,
  PARENT=EMPINFO
 
FIELDNAME=DAT_INC, ALIAS=DI,
  FORMAT=I6YMD,    $
 
FIELDNAME=PCT_INC, ALIAS=PI,
   FORMAT=F6.2,$
 
FIELDNAME=SALARY, ALIAS=SAL,
  FORMAT=D12.2M,$
 
FIELDNAME=JOBCODE,  ALIAS=JBC,
  FORMAT=A3,$

El segmento no está incluido en la vista de negocio.

SEGNAME=ADDRESS,SEGTYPE=S1,
  PARENT=EMPINFO
FIELDNAME=TYPE, ALIAS=AT,
  FORMAT=A4,$
FIELDNAME=ADDRESS_LN1,
  ALIAS=LN1, FORMAT=A20,$
FIELDNAME=ADDRESS_LN2,
  ALIAS=LN2, FORMAT=A20,$
FIELDNAME=ADDRESS_LN3,
  ALIAS=LN3, FORMAT=A20,$
FIELDNAME=ACCTNUMBER,
  ALIAS=ANO, FORMAT=I9L,$

El segmento no está incluido en la vista de negocio.

SEGNAME=SALINFO, SEGTYPE=SH1,
  PARENT=EMPINFO
FIELDNAME=PAY_DATE,  ALIAS=PD,
  FORMAT=I6YMD,$
FIELDNAME=GROSS, ALIAS=MO_PAY,
  FORMAT=D12.2M,$

El segmento no está incluido en la vista de negocio.

SEGNAME=DEDUCT, SEGTYPE=S1,
  PARENT=SALINFO
FIELDNAME=DED_CODE,  ALIAS=DC,
  FORMAT=A4,$
FIELDNAME=DED_AMT,  ALIAS=DA,
  FORMAT=D12.2M,$
SEGMENT=FOLDER2, PARENT=FOLDER1, $
 
 
 
FIELDNAME=JOBCODE, ALIAS=JOBCODE,
  BELONGS_TO_SEGMENT=JOBSEG, $
 
FIELDNAME=JOB_DESC, ALIAS=JOB_DESC,
  BELONGS_TO_SEGMENT=JOBSEG, $
SEGNAME=JOBSEG, SEGTYPE=KU,
  PARENT=PAYINFO,
  CRFILE=JOBFILE,
  CRKEY=JOBCODE,$

El segmento no está incluido en la vista de negocio.

SEGNAME=SECSEG,
  SEGTYPE=KLU,PARENT=JOBSEG,
  CRFILE=JOBFILE,$

El segmento no está incluido en la vista de negocio.

SEGNAME=SKILLSEG,SEGTYPE=KL,
  PARENT=JOBSEG,
  CRFILE=JOBFILE,$

El segmento no está incluido en la vista de negocio.

SEGNAME=ATTNDSEG,SEGTYPE=KM,
  PARENT=EMPINFO, 
  CRFILE=EDUCFILE,
  CRKEY=EMP_ID,$

El segmento no está incluido en la vista de negocio.

SEGNAME=COURSEG, SEGTYPE=KLU,
  PARENT=ATTNDSEG,
  CRFILE=EDUCFILE,$

El siguiente procedimiento hace referencia a la vista de negocio. Tenga en cuenta que la propiedad SET FOCTRANSFORM=ON está en vigor por defecto y es necesaria para la traslación del nombre cualificado FOLDER3.JOBCODE a su nombre correspondiente, en el archivo máster original (PAYINFO.JOBCODE):

TABLE FILE EMPLOYEE_BV01
PRINT FOLDER3.JOBCODE JOB_DESC
BY LAST_NAME BY FIRST_NAME
BY HIGHEST 1 DAT_INC  NOPRINT
END

La salida es:

LAST_NAME        FIRST_NAME  JOBCODE  JOB_DESC
---------        ----------  -------  --------
BANNING          JOHN        A17      DEPARTMENT MANAGER
BLACKWOOD        ROSEMARIE   B04      SYSTEMS ANALYST
CROSS            BARBARA     A17      DEPARTMENT MANAGER
GREENSPAN        MARY        A07      SECRETARY
IRVING           JOAN        A15      ASSIST.MANAGER
JONES            DIANE       B03      PROGRAMMER ANALYST
MCCOY            JOHN        B02      PROGRAMMER
MCKNIGHT         ROGER       B02      PROGRAMMER
ROMANS           ANTHONY     B04      SYSTEMS ANALYST
SMITH            MARY        B14      FILE QUALITY
                 RICHARD     A01      PRODUCTION CLERK
STEVENS          ALFRED      A07      SECRETARY

A continuación, añada un filtro al archivo máster EMPLOYEE e inclúyalo en el FOLDER1 de la vista de negocio.

En el archivo máster EMPLOYEE:

FILTER DFILTER  WITH EMPINFO.EMP_ID=DEPARTMENT EQ 'MIS'; $

En la vista de negocio:

FIELDNAME=DFILTER, ALIAS=DFILTER, BELONGS_TO_SEGMENT=EMPINFO, $

La siguiente solicitud implementa el filtro:

TABLE FILE EMPLOYEE_BV01
PRINT PAYINFO.JOBCODE JOB_DESC
BY LAST_NAME BY FIRST_NAME
BY HIGHEST 1 DAT_INC  NOPRINT
WHERE DFILTER
END

La salida es:

LAST_NAME        FIRST_NAME  JOBCODE  JOB_DESC
---------        ----------  -------  --------
BLACKWOOD        ROSEMARIE   B04      SYSTEMS ANALYST
CROSS            BARBARA     A17      DEPARTMENT MANAGER
GREENSPAN        MARY        A07      SECRETARY
JONES            DIANE       B03      PROGRAMMER ANALYST
MCCOY            JOHN        B02      PROGRAMMER
SMITH            MARY        B14      FILE QUALITY


WebFOCUS