سؤال

I am trying to do a simple LIST from the UV command line:

LIST PSUB TSN.COMMENT

I get the following:

LIST PSUB TSN.COMMENT 07:37:39am  22 Mar 2014  PAGE    1
@ID..................................... TSN..........

**Program "DICT.GET.LEDGER.DET.VALUE": Line 9, Improper data type.**

Looking further, I can see the following details on the field:

TSN.COMMENT
TYPE: I
LOC: SUBR('DICT.GET.LEDGER.DET.VALUE',FIELD(@ID,'~',4),FIELD(@ID,'~',6),FIELD(@ID,' ',5)"R%3",'3')<1,1,2>
CONV:
NAME: TSN
FORMAT: 13L
SM: S 

The application we are using against this database is EPICOR Ecplise -- Reports generated from the tools they provide that include this field do work, so I don't think there is a problem with the data file -- I think it is just me; I'm not that familiar with this type of database and don't know what I don't know.

The DICT.GET.LEDGER.DET.VALUE Program is as follows:

ED OC DICT.GET.LEDGER.VALUE 531 lines long.

----: P
0001:           SUBROUTINE (VAL,ATTB)
0002:           $INCLUDE AD.DIR CC~COMMON
0003: *
0004: *
<--And lots more after that -->

I think the code is OK because there are lots of other I type fields that use similar SUBR's that error out in the same way when called directory from UV. I think I'm just missing something.

And then looking at what is in CC~COMMON:

          COMMON /STDCOM/ COMDATA(150),SECURITY,MAIN.MEN,FILES(50),AOFILES(150),GLDATA(35)
** Version# 13 - 05/07/2008 - 10:24am - BABS - main

          COMMON FLAGS(100)
          COMMON TCL.LEVEL., RECALL.FLAG, E.MESS.
          COMMON LED(200),OLED(200),LD(150),OLD.LD(150)
          COMMON PRD(200),PRDP(30),PRD.BR(70),PRDC.BR(30),PRDD.BR(40)
          COMMON PGRP(10),PLNE(30),PLNE.BR(20),PLNB(5),BL.BR(50)
          COMMON CUS(200),CUSS(200),MA(40)
          COMMON TAX(20),AR(50)
          COMMON SCROLL.VAR, SVIEW.DEF., SVIEW.DATA.(10)

          $INCLUDE CC EQU.ESC.OBJECT
          $INCLUDE CC EQUATES

          PROMPT CHAR(0)
!BABS~05/07/08~10:24
* Compiled by ECLIPSE on 02/11/12 09:29 from CC:COMMON
*** Version# 13 - 05/07/2008 - 10:24am - BABS - main
هل كانت مفيدة؟

المحلول

You will need to create a wrapper routine to call OPEN.STANDARD.FILES:

>ED BP OPEN.STANDARD.FILES.TCL
001 * OPEN.STANDARD.FILES.TCL
002 CALL OPEN.STNADARD.FILES
003 STOP
004 END

>BASIC BP OPEN.STANDARD.FILES.TCL
>CATALOG BP OPEN.STANDARD.FILES.TCL

Then you can execute OPEN.STANDARD.FILES.TCL before your list statement. This is important if you are not starting Epicor's framework, like when you want to access this data with .NET or ODBC.

-Nathan

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top