Baanboard.com

Go Back   Baanboard.com > Forum > Baan SIGs > AFS/DDC/OLE: Function servers

User login

Frontpage Sponsor

Main

Google search


Poll
How big is your Baan-DB (just Data AND Indexes)
0 - 200 GB
17%
200 - 500 GB
30%
500 - 800 GB
3%
800 - 1200 GB
7%
1200 - 1500 GB
10%
1500 - 2000 GB
13%
> 2000 GB
20%
Total votes: 30

Baanboard at LinkedIn


Reference Content

Reply
 
Thread Tools Display Modes
  #1  
Old 13th February 2006, 18:55
pedromrs's Avatar
pedromrs pedromrs is offline
Member
 
Join Date: Oct 2002
Location: Portugal
Posts: 95
pedromrs is on a distinguished road
Baan: IVc4 & SP Chain - DB: SQL Server - OS: Windows NT; Windows 2000
Maintain Replenishment Orders

Hello all,

Did anyone have success creating Replenishment orders via AFS?
I have been successfull in creating the header for the order (session tdrpl0110m100).
When I call the subsession I noticed in the AFS.log that it won't collect the necessary information from the main session. When I try to save the line it comes up with something like "Can't find order reference".
Not sure if this is the problem but the tdrpl0110m100 is actually not on the Baan explorer. There's a tdrpl0105m000 that calls tdrpl0110m100.

Here is part of my code:
Code:
             |Colocar numero de ordem - Serie
	stpapi.put.field( "tdrpl0110m100", "tdrpl105.orno", "2" )
	
	|Colocar tipo de ordem
	stpapi.put.field( "tdrpl0110m100", "tdrpl105.cotp", "RP1" )
	
	|Colocar armazem de origem
	stpapi.put.field( "tdrpl0110m100", "tdrpl105.rwar", "006" )
	
	|Colocar armazem de destino
	stpapi.put.field( "tdrpl0110m100", "tdrpl105.dwar", "C6F" )
	
	|Colocar data da ordem
	stpapi.put.field( "tdrpl0110m100", "tdrpl105.odat", str$(data) )
	
	|Data prevista de entrega
	stpapi.put.field( "tdrpl0110m100", "tdrpl105.pddt", str$(data+10) )
	
	|Data prevista de recepção
	stpapi.put.field( "tdrpl0110m100", "tdrpl105.prdt", str$(data+10) )
	
	|Tentar inserir o record	
	ret=stpapi.insert( "tdrpl0110m100", true, error )
	
		
	|Verificar se existiu um erro
	if (ret=0) then
	
		message(error)
		|Fazer o recover
		stpapi.recover( "tdrpl0110m100", error )
	else
		|Vamos buscar o numero da ordem recem-criada
		stpapi.get.field( "tdrpl0110m100", "tdrpl105.orno", orno )
		
		|Preparar subsessão de linhas
		stpapi.handle.subproc( "tdrpl0110m100", "tdrpl0111s100", "add" )		
		
		|Disparar subsessão		
		stpapi.change.view( "tdrpl0110m100" )
		
		|Colocar numero da ordem
		stpapi.put.field( "tdrpl0111s100", "tdrpl100.orno", orno )
		
		|Colocar a posicao
		stpapi.put.field( "tdrpl0111s100", "tdrpl100.pono", "1" )
		
		|Colocar tipo de ordem
		stpapi.put.field( "tdrpl0110m100", "tdrpl100.cotp", "RP1" )
	
		|Colocar a sequencia
		|stpapi.put.field( "tdrpl0111s100", "tdrpl100.srnb", "1" )
		
		|Colocar Item
		stpapi.put.field( "tdrpl0111s100", "tdrpl100.item", item )
		
		|Colocar Unidade
		stpapi.put.field( "tdrpl0111s100", "tdrpl100.cuni", "Un " )
		
		|Colocar Quantidade
		stpapi.put.field( "tdrpl0111s100", "tdrpl100.oqua", str$(qana) )
		
		|Colocar armazem de origem
		stpapi.put.field( "tdrpl0111s100", "tdrpl100.rwar", "006" )
		
		|Colocar armazem de destino
		stpapi.put.field( "tdrpl0111s100", "tdrpl100.dwar", "C6F" )
		
		|Colocar data da ordem
		stpapi.put.field( "tdrpl0111s100", "tdrpl100.odat", str$(data) )
		
		|Data prevista de entrega
		stpapi.put.field( "tdrpl0111s100", "tdrpl100.pddt", str$(data+10) )
		
		|Data prevista de recepção
		stpapi.put.field( "tdrpl0111s100", "tdrpl100.prdt", str$(data+10) )
	
		|Inserir Record
		ret=stpapi.insert( "tdrpl0111s100", true, error )
		|ret=stpapi.save( "tdrpl0111s100", error )
		
		if (ret=0) then
	
			message(error)
			|Fazer o recover
			stpapi.recover( "tdrpl0111s100", error )
		else
			message("Sucesso Linhas")			
		endif
		
		|Encerrar sessão de linhas
		stpapi.end.session( "tdrpl0111s100" , error  )
	endif
Thank you,
__________________
Regards,
Pedro Sousa
Reply With Quote
  #2  
Old 13th February 2006, 19:29
mark_h's Avatar
mark_h mark_h is offline
Guru
 
Join Date: Sep 2001
Location: Kentucky, USA
Posts: 7,138
mark_h will become famous soon enough
Baan: Baan 4C4 A&D1 - DB: Oracle - OS: Sun Solaris
Not sure about your version, but from ours I would expect to see something like this

Code:
	ret=stpapi.insert( "tdrpl0110m100", true, error )
	stpapi.handle.subproc( "tdrpl0110m100", "tdrpl0111s100", "add" )	
	|To activate lines		
	stpapi.continue.process( "tdrpl0110m100" )

But then again our tdrpl0110m100 activates tdrpl0111s000, but we do have a tdrpl0111s100 on the system. Not real familiar with these sessions and have not actually done an AFS routine for them.
__________________
Mark

GO Cards!
My latest mantra - make sure you have latest stpapi patches and the latest session object. If on LN then please explore the option of using DAL2 functionality.

Shared Solutions for Baan systems provided free by Baan Board.
Play the Google game and help Baanboard get better rankings. Do your part. Click here to find how.
Reply With Quote
  #3  
Old 13th February 2006, 19:39
pedromrs's Avatar
pedromrs pedromrs is offline
Member
 
Join Date: Oct 2002
Location: Portugal
Posts: 95
pedromrs is on a distinguished road
Baan: IVc4 & SP Chain - DB: SQL Server - OS: Windows NT; Windows 2000
Mark,

Thanks. That did the trick. I did not try that one because the generated dll from the session didn't brought that one up. As I didn't touch AFS code for over a year now I did not remember to try it.

So my code works for adding replenishment orders if you change the code to reflect Marks suggestion.

Thanks again,
__________________
Regards,
Pedro Sousa
Reply With Quote
  #4  
Old 15th March 2006, 21:09
fsamuels fsamuels is offline
Junior Member
 
Join Date: Mar 2006
Posts: 7
fsamuels is on a distinguished road
Baan: 4 - DB: ole - OS: xp
Sample

I wonder if some can give me the where I should add the code that did the trick.
I am new on this and I try to convert this code to vba code in excel and it want add items to the replenishment order.

Regards
Fredrik


---------------
Call ConnectBaan

Dim BaanSess As String
Dim SessField As String
Dim sDll As String

Dim sReturnString As String
sReturnString = Space(128)

Dim sValue As String


' |Colocar numero de ordem - Serie
' stpapi.put.field( "tdrpl0110m100", "tdrpl105.orno", "2" )
BaanSess = "tdrpl0110m100"
SessField = "tdrpl105.orno"
sValue = "2"

sDll = "stpapi.put.field(" & Chr(34) & BaanSess & Chr(34) & "," & Chr(34) & SessField & Chr(34) & "," & Chr(34) & sValue & Chr(34) & ")"
Call SendtoBAAN("ottstpapihand", sDll)


' |Colocar tipo de ordem
' stpapi.put.field( "tdrpl0110m100", "tdrpl105.cotp", "RP1" )

SessField = "tdrpl105.cotp"
sValue = "RP1"

sDll = "stpapi.put.field(" & Chr(34) & BaanSess & Chr(34) & "," & Chr(34) & SessField & Chr(34) & "," & Chr(34) & sValue & Chr(34) & ")"
Call SendtoBAAN("ottstpapihand", sDll)


' |Colocar armazem de origem
' stpapi.put.field( "tdrpl0110m100", "tdrpl105.rwar", "006" )

SessField = "tdrpl105.rwar"
sValue = "200"

sDll = "stpapi.put.field(" & Chr(34) & BaanSess & Chr(34) & "," & Chr(34) & SessField & Chr(34) & "," & Chr(34) & sValue & Chr(34) & ")"
Call SendtoBAAN("ottstpapihand", sDll)


' |Colocar armazem de destino
' stpapi.put.field( "tdrpl0110m100", "tdrpl105.dwar", "C6F" )
SessField = "tdrpl105.dwar"
sValue = "21D"

sDll = "stpapi.put.field(" & Chr(34) & BaanSess & Chr(34) & "," & Chr(34) & SessField & Chr(34) & "," & Chr(34) & sValue & Chr(34) & ")"
Call SendtoBAAN("ottstpapihand", sDll)


' |Colocar data da ordem
' stpapi.put.field( "tdrpl0110m100", "tdrpl105.odat", str$(data) )
SessField = "tdrpl105.odat"
sValue = Date
sDll = "stpapi.put.field(" & Chr(34) & BaanSess & Chr(34) & "," & Chr(34) & SessField & Chr(34) & "," & Chr(34) & sValue & Chr(34) & ")"
Call SendtoBAAN("ottstpapihand", sDll)


' |Data prevista de entrega
' stpapi.put.field( "tdrpl0110m100", "tdrpl105.pddt", str$(data+10) )

SessField = "tdrpl105.pddt"
sValue = Date + 10
sDll = "stpapi.put.field(" & Chr(34) & BaanSess & Chr(34) & "," & Chr(34) & SessField & Chr(34) & "," & Chr(34) & sValue & Chr(34) & ")"
Call SendtoBAAN("ottstpapihand", sDll)


' |Data prevista de recepção
' stpapi.put.field( "tdrpl0110m100", "tdrpl105.prdt", str$(data+10) )
SessField = "tdrpl105.prdt"
sValue = Date
sDll = "stpapi.put.field(" & Chr(34) & BaanSess & Chr(34) & "," & Chr(34) & SessField & Chr(34) & "," & Chr(34) & sValue & Chr(34) & ")"
Call SendtoBAAN("ottstpapihand", sDll)


' |Tentar inserir o record
' ret = stpapi.Insert("tdrpl0110m100", True, Error)


' sDll = "stpapi.Insert(" & Chr(34) & BaanSess & Chr(34) & ",1," & sReturnString & ")"
' Call SendtoBAAN("ottstpapihand", sDll)

Dim sErrMsg As String
Dim ret

sErrMsg = Space(50)
ret = BaanObj.ParseExecFunction("ottstpapihand", "stpapi.insert(" & Chr(34) & BaanSess & Chr(34) & ",1," & Chr(34) & sErrMsg & Chr(34) & ")")

MsgBox ("ret = " & CStr(ret) & Chr(10) & _
"sErrMsg = " & sErrMsg & Chr(10) & _
"BaanObj.Error = " & BaanObj.Error & Chr(10) & _
"BaanObj.ReturnValue = " & BaanObj.returnvalue & Chr(10) & _
"BaanObj.FunctionCall = " & BaanObj.FunctionCall)



If BaanObj.Error <> 0 Then
' Send mail (sometime in the future?)

ret = BaanObj.ParseExecFunction("ottstpapihand", "stpapi.recover( " & Chr(34) & BaanSess & Chr(34) & " ," & Chr(34) & sErrMsg & Chr(34) & ")")

Else

' Else

' |Vamos buscar o numero da ordem recem-criada
' stpapi.get.field( "tdrpl0110m100", "tdrpl105.orno", orno )

Dim sOrno As String
SessField = "tdrpl105.orno"

sDll = "stpapi.get.field(" & Chr(34) & BaanSess & Chr(34) & "," & Chr(34) & SessField & Chr(34) & "," & Chr(34) & sReturnString & Chr(34) & ")"
Call SendtoBAAN("ottstpapihand", sDll)

sOrno = GetValueFromStapiGet(BaanObj.FunctionCall, BaanSess, SessField)


' |Preparar subsessão de linhas
' stpapi.handle.subproc( "tdrpl0110m100", "tdrpl0111s100", "add" )

SessField = "tdrpl0111s100"
sValue = "add"
sDll = "stpapi.handle.subproc(" & Chr(34) & BaanSess & Chr(34) & "," & Chr(34) & SessField & Chr(34) & "," & Chr(34) & sValue & Chr(34) & ")"
Call SendtoBAAN("ottstpapihand", sDll)


'
' |Disparar subsessão
' stpapi.Change.View ("tdrpl0110m100")


sErrMsg = Space(50)
ret = BaanObj.ParseExecFunction("ottstpapihand", "stpapi.change.view(" & Chr(34) & BaanSess & Chr(34) & "," & Chr(34) & sErrMsg & Chr(34) & ")")

MsgBox ("ret = " & CStr(ret) & Chr(10) & _
"sErrMsg = " & sErrMsg & Chr(10) & _
"BaanObj.Error = " & BaanObj.Error & Chr(10) & _
"BaanObj.ReturnValue = " & BaanObj.returnvalue & Chr(10) & _
"BaanObj.FunctionCall = " & BaanObj.FunctionCall)


' |Colocar numero da ordem
' stpapi.put.field( "tdrpl0111s100", "tdrpl100.orno", orno )
subBaanSess = "tdrpl0111s100"
SessField = "tdrpl100.orno"
sValue = sOrno
sDll = "stpapi.put.field(" & Chr(34) & subBaanSess & Chr(34) & "," & Chr(34) & SessField & Chr(34) & "," & Chr(34) & sValue & Chr(34) & ")"
Call SendtoBAAN("ottstpapihand", sDll)


' |Colocar a posicao
' stpapi.put.field( "tdrpl0111s100", "tdrpl100.pono", "1" )
SessField = "tdrpl100.pono"
sValue = "1"
sDll = "stpapi.put.field(" & Chr(34) & subBaanSess & Chr(34) & "," & Chr(34) & SessField & Chr(34) & "," & Chr(34) & sValue & Chr(34) & ")"
Call SendtoBAAN("ottstpapihand", sDll)


' |Colocar tipo de ordem
' stpapi.put.field( "tdrpl0110m100", "tdrpl100.cotp", "RP1" )
SessField = "tdrpl100.cotp"
sValue = "RP1"
sDll = "stpapi.put.field(" & Chr(34) & BaanSess & Chr(34) & "," & Chr(34) & SessField & Chr(34) & "," & Chr(34) & sValue & Chr(34) & ")"
Call SendtoBAAN("ottstpapihand", sDll)


'
' |Colocar a sequencia
' |stpapi.put.field( "tdrpl0111s100", "tdrpl100.srnb", "1" )
SessField = "tdrpl100.srnb"
sValue = "1"
sDll = "stpapi.put.field(" & Chr(34) & subBaanSess & Chr(34) & "," & Chr(34) & SessField & Chr(34) & "," & Chr(34) & sValue & Chr(34) & ")"
Call SendtoBAAN("ottstpapihand", sDll)


' |Colocar Item
' stpapi.put.field( "tdrpl0111s100", "tdrpl100.item", item )
SessField = "tdrpl100.item"
sValue = "LZF083256/1"
sDll = "stpapi.put.field(" & Chr(34) & subBaanSess & Chr(34) & "," & Chr(34) & SessField & Chr(34) & "," & Chr(34) & sValue & Chr(34) & ")"
Call SendtoBAAN("ottstpapihand", sDll)


' |Colocar Unidade
' stpapi.put.field( "tdrpl0111s100", "tdrpl100.cuni", "Un " )
' SessField = "tdrpl100.cuni"
' sValue = "Un "
' sDll = "stpapi.put.field(" & Chr(34) & subBaanSess & Chr(34) & "," & Chr(34) & SessField & Chr(34) & "," & Chr(34) & sValue & Chr(34) & ")"
' Call SendtoBAAN("ottstpapihand", sDll)




' |Colocar Quantidade
' stpapi.put.field( "tdrpl0111s100", "tdrpl100.oqua", str$(qana) )
SessField = "tdrpl100.oqua"
sValue = "10"
sDll = "stpapi.put.field(" & Chr(34) & subBaanSess & Chr(34) & "," & Chr(34) & SessField & Chr(34) & "," & Chr(34) & sValue & Chr(34) & ")"
Call SendtoBAAN("ottstpapihand", sDll)


' |Colocar armazem de origem
' stpapi.put.field( "tdrpl0111s100", "tdrpl100.rwar", "006" )
SessField = "tdrpl100.rwar"
sValue = "200"
sDll = "stpapi.put.field(" & Chr(34) & subBaanSess & Chr(34) & "," & Chr(34) & SessField & Chr(34) & "," & Chr(34) & sValue & Chr(34) & ")"
Call SendtoBAAN("ottstpapihand", sDll)



' |Colocar armazem de destino
' stpapi.put.field( "tdrpl0111s100", "tdrpl100.dwar", "C6F" )
SessField = "tdrpl100.dwar"
sValue = "21D"
sDll = "stpapi.put.field(" & Chr(34) & subBaanSess & Chr(34) & "," & Chr(34) & SessField & Chr(34) & "," & Chr(34) & sValue & Chr(34) & ")"
Call SendtoBAAN("ottstpapihand", sDll)




' |Colocar data da ordem
' stpapi.put.field( "tdrpl0111s100", "tdrpl100.odat", str$(data) )
SessField = "tdrpl100.odat"
sValue = Date
sDll = "stpapi.put.field(" & Chr(34) & subBaanSess & Chr(34) & "," & Chr(34) & SessField & Chr(34) & "," & Chr(34) & sValue & Chr(34) & ")"
Call SendtoBAAN("ottstpapihand", sDll)

'Data prevista de entrega
' stpapi.put.field( "tdrpl0111s100", "tdrpl100.pddt", str$(data+10) )

SessField = "tdrpl100.pddt"
sValue = Date
sDll = "stpapi.put.field(" & Chr(34) & subBaanSess & Chr(34) & "," & Chr(34) & SessField & Chr(34) & "," & Chr(34) & sValue & Chr(34) & ")"
Call SendtoBAAN("ottstpapihand", sDll)


' |Data prevista de recepção
' stpapi.put.field( "tdrpl0111s100", "tdrpl100.prdt", str$(data+10) )
SessField = "tdrpl100.prdt"
sValue = Date
sDll = "stpapi.put.field(" & Chr(34) & subBaanSess & Chr(34) & "," & Chr(34) & SessField & Chr(34) & "," & Chr(34) & sValue & Chr(34) & ")"
Call SendtoBAAN("ottstpapihand", sDll)


' |Inserir Record
' ret = stpapi.Insert("tdrpl0111s100", True, Error)
' |ret=stpapi.save( "tdrpl0111s100", error )


'Belive I need this
'SessField = "tdrpl105.orno"
'sValue = sOrno

'sDll = "stpapi.put.field(" & Chr(34) & BaanSess & Chr(34) & "," & Chr(34) & SessField & Chr(34) & "," & Chr(34) & sValue & Chr(34) & ")"
'Call SendtoBAAN("ottstpapihand", sDll)


sErrMsg = Space(128)
ret = BaanObj.ParseExecFunction("ottstpapihand", "stpapi.insert(" & Chr(34) & subBaanSess & Chr(34) & ",1," & Chr(34) & sErrMsg & Chr(34) & ")")

MsgBox ("ret = " & CStr(ret) & Chr(10) & _
"sErrMsg = " & sErrMsg & Chr(10) & _
"BaanObj.Error = " & BaanObj.Error & Chr(10) & _
"BaanObj.ReturnValue = " & BaanObj.returnvalue & Chr(10) & _
"BaanObj.FunctionCall = " & BaanObj.FunctionCall)




End If

----------------------------------
Reply With Quote
  #5  
Old 16th March 2006, 00:13
pedromrs's Avatar
pedromrs pedromrs is offline
Member
 
Join Date: Oct 2002
Location: Portugal
Posts: 95
pedromrs is on a distinguished road
Baan: IVc4 & SP Chain - DB: SQL Server - OS: Windows NT; Windows 2000
Replace the change.view() for the continue.process call
__________________
Regards,
Pedro Sousa
Reply With Quote
  #6  
Old 16th March 2006, 08:27
fsamuels fsamuels is offline
Junior Member
 
Join Date: Mar 2006
Posts: 7
fsamuels is on a distinguished road
Baan: 4 - DB: ole - OS: xp
I try that with no success.
sErrMsg = Space(50)
BaanObj.ParseExecFunction "ottstpapihand", "stpapi.continue.process(" & Chr(34) & BaanSess & Chr(34) & "," & Chr(34) & sErrMsg & Chr(34) & ")"


' |Colocar numero da ordem
' stpapi.put.field( "tdrpl0111s100", "tdrpl100.orno", orno )
SessField = "tdrpl100.orno"
sValue = "30991"
sDll = "stpapi.put.field(" & Chr(34) & subBaanSess & Chr(34) & "," & Chr(34) & SessField & Chr(34) & "," & Chr(34) & sValue & Chr(34) & ")"
Call SendtoBAAN("ottstpapihand", sDll)

It get error -10 then I try to put field with "stpapi.put.field"

Any proposal?
Reply With Quote
  #7  
Old 16th March 2006, 09:08
fsamuels fsamuels is offline
Junior Member
 
Join Date: Mar 2006
Posts: 7
fsamuels is on a distinguished road
Baan: 4 - DB: ole - OS: xp
It works now but i dont understand why
I add a "stpapi.put.field" before i stpapi.continue.process on the childsession
and now it works

SessField = "tdrpl100.orno"
sValue = "30991"
sDll = "stpapi.put.field(" & Chr(34) & subBaanSess & Chr(34) & "," & Chr(34) & SessField & Chr(34) & "," & Chr(34) & sValue & Chr(34) & ")"
Call SendtoBAAN("ottstpapihand", sDll)



sErrMsg = Space(50)
sDll = "stpapi.continue.process(" & Chr(34) & subBaanSess & Chr(34) & "," & Chr(34) & sErrMsg & Chr(34) & ")"
ret = BaanObj.ParseExecFunction("ottstpapihand", sDll)
MsgBox ("ret = " & CStr(ret) & Chr(10) & _
"sErrMsg = " & sErrMsg & Chr(10) & _
"BaanObj.Error = " & BaanObj.Error & Chr(10) & _
"BaanObj.ReturnValue = " & BaanObj.returnvalue & Chr(10) & _
"BaanObj.FunctionCall = " & BaanObj.FunctionCall)

Can someone wise explain this for me?
Reply With Quote
  #8  
Old 16th March 2006, 16:21
mark_h's Avatar
mark_h mark_h is offline
Guru
 
Join Date: Sep 2001
Location: Kentucky, USA
Posts: 7,138
mark_h will become famous soon enough
Baan: Baan 4C4 A&D1 - DB: Oracle - OS: Sun Solaris
Sometimes everything essential to a sub-session does not make it from the main session when using API code. So in some cases you may have to work around this problem - put the fields, do a look up, etc. Since I am not familiar with these sessions I really can not say what the problem could be. It could also just be that you need the latest patches on the objects.
__________________
Mark

GO Cards!
My latest mantra - make sure you have latest stpapi patches and the latest session object. If on LN then please explore the option of using DAL2 functionality.

Shared Solutions for Baan systems provided free by Baan Board.
Play the Google game and help Baanboard get better rankings. Do your part. Click here to find how.
Reply With Quote
Sponsored Links
  #9  
Old 11th January 2007, 06:41
vandana vandana is offline
Newbie
 
Join Date: May 2006
Posts: 2
vandana is on a distinguished road
Baan: baan 4 - DB: oracle - OS: ibm aix
AFS of RPL header

Dear pedromrs

Hi, I would like to have source of AFS of maintining RPL header part from you, can u send me on g_shirsat@yahoo.com

Thanks

Ganesh
Reply With Quote
  #10  
Old 12th January 2007, 07:10
fsamuels fsamuels is offline
Junior Member
 
Join Date: Mar 2006
Posts: 7
fsamuels is on a distinguished road
Baan: 4 - DB: ole - OS: xp
'This is my sourcode for this Excel Macro that I was playing with for some time ago.
'Hope you find that you need in this.
'To use this you need a sheet in Excel that is named RO
'Please not ask how it works since I am very busy right now..

'Good luck


Code:
Dim BaanObj As Object
Dim dllname As String
Dim dllfunction As String

Option Explicit

Private db As New ADODB.Connection
 Dim iFast As Integer
 
Private Sub connectDb()
   On Error Resume Next
    db.Open "Provider=sqloledb;Data Source=knasqlcl02\sql02;Initial Catalog=FLS;User Id=******;Password=*****;"

End Sub

Function PopulateBaanField(BaanObj, sSession, sTable, sField, sValue)
    ' filling the Baan field with the value
    Dim s
    Dim sTest As String
    sTest = Space(128)
    
    FieldName = sTable & "." & sField
    
    s = "stpapi.put.field(" & Chr(34) & sSession & Chr(34) & ", " & _
        Chr(34) & sTable & "." & sField & Chr(34) & ", " & _
        Chr(34) & sValue & Chr(34) & ")"
    
    Call BaanObj.ParseExecFunction("ottstpapihand", s)
    If BaanObj.Error <> 0 Or BaanObj.returnvalue <> "" Then
        BaanObj.Quit
    End If
   
'Call BaanObj.ParseExecFunction("ottstpapihand", "stpapi.get.field(" & Chr(34) & sSession & Chr(34) & "," & Chr(34) & sTable & "." & sField & Chr(34) & "," & Chr(34) & sTest & Chr(34) & ")")
'Call BaanObj.ParseExecFunction("ottstpapihand", "stpapi.end.session(" & Chr(34) & sSession & Chr(34) & ")")
 '  If BaanObj.Error <> 0 Or BaanObj.ReturnValue <> "" Then
  '      BaanObj.Quit
   ' End If
 'tempstr = BaanObj.ReturnValue


'MsgBox "numRecepción-->> " & sTest

End Function

Function GetValueFromStapiGet(fc As String, sn As String, fd As String)
GetValueFromStapiGet = Mid$(fc, 18 + Len(sn) + 3 + Len(fd) + 4)
GetValueFromStapiGet = Left$(GetValueFromStapiGet, Len(GetValueFromStapiGet) - 2)
GetValueFromStapiGet = Left(GetValueFromStapiGet, Len(GetValueFromStapiGet) - 1)

End Function


Private Sub ConnectBaan()
    On Error GoTo CannotCreateBaan
        
    ' Baan4
      If BaanObj Is Nothing Then
  
   Set BaanObj = CreateObject("Baan4.Application")
    Set BaanObj = BaanObj
  
  End If
  
         
    ' Baan5
    'Set BaanObj = CreateObject("Baan.Application")

    BaanObj.Timeout = 20

Exit Sub
    
CannotCreateBaan:
    MsgBox "Can not connect to Baan"
    End
End Sub

Private Sub DisconnectBaan()
    If Not BaanObj Is Nothing Then
        BaanObj.Quit
        Set BaanObj = Nothing
    End If
End Sub

Private Sub SendtoBAAN(ByVal dllname As String, ByVal dllfunction As String)
    Dim returnvalue As String
    
    If BaanObj Is Nothing Then
        ConnectBaan
        If BaanObj Is Nothing Then
            End
        End If
    End If
    BaanObj.ParseExecFunction dllname, dllfunction
        
    Dim errormsg As String
    Dim Errorsw  As Boolean
    
    errormsg = ""
    If BaanObj.Error <> 0 Then
        Select Case BaanObj.Error
            Case Is = -1
                errormsg = "DLL Unknown"
            Case Is = -2
                errormsg = "Function Unknown"
            Case Is = -3
                errormsg = "Syntax Error in Function Call"
        End Select
        MsgBox "Call to Baan DLL failed, error = " & errormsg & vbNewLine & BaanObj.Error
        
    End If
    returnvalue = Val(BaanObj.returnvalue)
    Errorsw = False
    If returnvalue = False Then
        Errorsw = True
    End If
    Exit Sub

AutomationError:
    Cells(2, 3) = "Baan IV automation error: " & BaanObj.Error
    End
End Sub


Public Sub RepleinsmentMain()

Dim sAsk As String
sAsk = MsgBox("Do you want to create replenishment order", vbYesNo + vbQuestion)

If sAsk = vbNo Then Exit Sub


'31002
   Call ConnectBaan
   Dim sReplenishmentorder As String
   
   If Not ReplenishmentHeader("200", "21D", sReplenishmentorder) Then
        Call DisconnectBaan

    Exit Sub
    End If



   'For loop later on
   
   Sheets("RO").Select

    Cells(1, 2) = sReplenishmentorder

    Dim y As Integer
    y = 4
    Dim sItem As String
    Dim iQuantity As Integer
    
    
    Do While Not Cells(y, 1) = ""
        Cells(y, 1).Select
        sItem = Cells(y, 1)
        iQuantity = Cells(y, 5)
        
   If Not ReplenishmentAdditem(sReplenishmentorder, sItem, iQuantity) Then
        Call DisconnectBaan

    Exit Sub
    DoEvents
    
   End If
        
        
        DoEvents
        y = y + 1
        
    Loop
    
   MsgBox "Done", vbInformation
   
   
Call DisconnectBaan

End Sub

Private Function ReplenishmentAdditem(sReplenishmentorder As String, sItem As String, iQuantity As Integer) As Boolean
    Dim BaanSess As String
    Dim subBaanSess As String
    
    Dim SessField  As String
    Dim sDll As String
    Dim sErrMsg As String
    
    Dim sReturnString As String
    sReturnString = Space(128)

    Dim sValue As String

    subBaanSess = "tdrpl0111s100"
    BaanSess = "tdrpl0110m100"
      
    Dim ret As Variant
    
     Dim sOrno As String
       
        SessField = "tdrpl105.orno"
        sDll = "stpapi.put.field(" & Chr(34) & BaanSess & Chr(34) & "," & Chr(34) & SessField & Chr(34) & "," & Chr(34) & sReplenishmentorder & Chr(34) & ")"
        Call SendtoBAAN("ottstpapihand", sDll)
        
        
        sErrMsg = Space(128)
        sDll = "stpapi.Find(" & Chr(34) & BaanSess & Chr(34) & "," & Chr(34) & sErrMsg & Chr(34) & ")"

        ret = BaanObj.ParseExecFunction("ottstpapihand", sDll)
        If BaanObj.returnvalue <> 1 Then
            stpapi_End_session (BaanSess)
             MsgBox "Replenishmentorder: " & sReplenishmentorder & " not exist"
            Exit Function
        End If

        sValue = "add"
        sDll = "stpapi.handle.subproc(" & Chr(34) & BaanSess & Chr(34) & "," & Chr(34) & subBaanSess & Chr(34) & "," & Chr(34) & sValue & Chr(34) & ")"
        Call SendtoBAAN("ottstpapihand", sDll)
 
        
        'This make it possible to stpapi.continue.process downunder
        SessField = "tdrpl100.orno"
        sDll = "stpapi.put.field(" & Chr(34) & subBaanSess & Chr(34) & "," & Chr(34) & SessField & Chr(34) & "," & Chr(34) & sReplenishmentorder & Chr(34) & ")"
        Call SendtoBAAN("ottstpapihand", sDll)
              
              
    ' |To activate lines
   ' stpapi.continue.process ("tdrpl0110m100")
        sErrMsg = Space(50)
        sDll = "stpapi.continue.process(" & Chr(34) & subBaanSess & Chr(34) & "," & Chr(34) & sErrMsg & Chr(34) & ")"
        ret = BaanObj.ParseExecFunction("ottstpapihand", sDll)
   'MsgBox ("ret = " & CStr(ret) & Chr(10) & _
    '        "sErrMsg = " & sErrMsg & Chr(10) & _
     '       "BaanObj.Error = " & BaanObj.Error & Chr(10) & _
      '      "BaanObj.ReturnValue = " & BaanObj.returnvalue & Chr(10) & _
       '     "BaanObj.FunctionCall = " & BaanObj.FunctionCall)
  
 
        'Add Item
        SessField = "tdrpl100.item"
        sDll = "stpapi.put.field(" & Chr(34) & subBaanSess & Chr(34) & "," & Chr(34) & SessField & Chr(34) & "," & Chr(34) & sItem & Chr(34) & ")"
        Call SendtoBAAN("ottstpapihand", sDll)
 
 
 '       |Colocar Unidade
 '       stpapi.put.field( "tdrpl0111s100", "tdrpl100.cuni", "Un " )
       ' SessField = "tdrpl100.cuni"
       ' sValue = "Un "
       ' sDll = "stpapi.put.field(" & Chr(34) & subBaanSess & Chr(34) & "," & Chr(34) & SessField & Chr(34) & "," & Chr(34) & sValue & Chr(34) & ")"
       ' Call SendtoBAAN("ottstpapihand", sDll)
 
        'Add Quantity
        SessField = "tdrpl100.oqua"
        sDll = "stpapi.put.field(" & Chr(34) & subBaanSess & Chr(34) & "," & Chr(34) & SessField & Chr(34) & "," & Chr(34) & CStr(iQuantity) & Chr(34) & ")"
        Call SendtoBAAN("ottstpapihand", sDll)
 
 
 '       |Colocar armazem de origem
 '       stpapi.put.field( "tdrpl0111s100", "tdrpl100.rwar", "006" )
  '      SessField = "tdrpl100.rwar"
  '      sValue = "200"
  '      sDll = "stpapi.put.field(" & Chr(34) & subBaanSess & Chr(34) & "," & Chr(34) & SessField & Chr(34) & "," & Chr(34) & sValue & Chr(34) & ")"
  '      Call SendtoBAAN("ottstpapihand", sDll)
        
        
        
 '       |Colocar armazem de destino
 '       stpapi.put.field( "tdrpl0111s100", "tdrpl100.dwar", "C6F" )
   '     SessField = "tdrpl100.dwar"
    '    sValue = "21D"
     '   sDll = "stpapi.put.field(" & Chr(34) & subBaanSess & Chr(34) & "," & Chr(34) & SessField & Chr(34) & "," & Chr(34) & sValue & Chr(34) & ")"
      '  Call SendtoBAAN("ottstpapihand", sDll)
        
        
        
        
 '       |Colocar data da ordem
 '       stpapi.put.field( "tdrpl0111s100", "tdrpl100.odat", str$(data) )
   '     SessField = "tdrpl100.odat"
   '     sValue = Date
   '     sDll = "stpapi.put.field(" & Chr(34) & subBaanSess & Chr(34) & "," & Chr(34) & SessField & Chr(34) & "," & Chr(34) & sValue & Chr(34) & ")"
    '    Call SendtoBAAN("ottstpapihand", sDll)
        
        'Data prevista de entrega
        '       stpapi.put.field( "tdrpl0111s100", "tdrpl100.pddt", str$(data+10) )
               
     '   SessField = "tdrpl100.pddt"
     '   sValue = "20070101"
     '   sDll = "stpapi.put.field(" & Chr(34) & subBaanSess & Chr(34) & "," & Chr(34) & SessField & Chr(34) & "," & Chr(34) & sValue & Chr(34) & ")"
     '   Call SendtoBAAN("ottstpapihand", sDll)
      
        
'        |Data prevista de recepção
'        stpapi.put.field( "tdrpl0111s100", "tdrpl100.prdt", str$(data+10) )
    '    SessField = "tdrpl100.prdt"
    '    sValue = Date
    '    sDll = "stpapi.put.field(" & Chr(34) & subBaanSess & Chr(34) & "," & Chr(34) & SessField & Chr(34) & "," & Chr(34) & sValue & Chr(34) & ")"
    '    Call SendtoBAAN("ottstpapihand", sDll)
      
     
'        |Inserir Record
'        ret = stpapi.Insert("tdrpl0111s100", True, Error)
'        |ret=stpapi.save( "tdrpl0111s100", error )
                      
            
        
        sErrMsg = Space(128)
        ret = BaanObj.ParseExecFunction("ottstpapihand", "stpapi.insert(" & Chr(34) & subBaanSess & Chr(34) & ",1," & Chr(34) & sErrMsg & Chr(34) & ")")

      '  MsgBox ("ret = " & CStr(ret) & Chr(10) & _
       '     "sErrMsg = " & sErrMsg & Chr(10) & _
        '    "BaanObj.Error = " & BaanObj.Error & Chr(10) & _
         '   "BaanObj.ReturnValue = " & BaanObj.returnvalue & Chr(10) & _
          '  "BaanObj.FunctionCall = " & BaanObj.FunctionCall)
                      

    sDll = "stpapi.End.session(" & Chr(34) & subBaanSess & Chr(34) & ")"
   Call SendtoBAAN("ottstpapihand", sDll)
    
    
    sDll = "stpapi.End.session(" & Chr(34) & BaanSess & Chr(34) & ")"
    Call SendtoBAAN("ottstpapihand", sDll)


ReplenishmentAdditem = True

End Function

 
Private Function stpapi_End_session(sSession As String) As Boolean
    Dim sDll As String
    
    sDll = "stpapi.End.session(" & Chr(34) & sSession & Chr(34) & ")"
    Call SendtoBAAN("ottstpapihand", sDll)

    stpapi_End_session = True

End Function


Private Function ReplenishmentHeader(sMainStorage As String, sPwStorage As String, ByRef sReplenishmentorder As String) As Boolean
    Dim BaanSess As String
    Dim SessField  As String
    Dim sDll As String
    
    Dim sReturnString As String
    sReturnString = Space(128)

    Dim sValue As String
    Dim dDate As Date


    BaanSess = "tdrpl0110m100"
    SessField = "tdrpl105.cotp"
    sValue = "RP1"
    sDll = "stpapi.put.field(" & Chr(34) & BaanSess & Chr(34) & "," & Chr(34) & SessField & Chr(34) & "," & Chr(34) & sValue & Chr(34) & ")"
    Call SendtoBAAN("ottstpapihand", sDll)
    
    
   'sMainStorage
    SessField = "tdrpl105.rwar"
    sDll = "stpapi.put.field(" & Chr(34) & BaanSess & Chr(34) & "," & Chr(34) & SessField & Chr(34) & "," & Chr(34) & sMainStorage & Chr(34) & ")"
    Call SendtoBAAN("ottstpapihand", sDll)
    
    'PwStorage
    SessField = "tdrpl105.dwar"
       
    sDll = "stpapi.put.field(" & Chr(34) & BaanSess & Chr(34) & "," & Chr(34) & SessField & Chr(34) & "," & Chr(34) & sPwStorage & Chr(34) & ")"
    Call SendtoBAAN("ottstpapihand", sDll)
    
    Dim sErrMsg As String
    sErrMsg = Space(128)
       
    Dim ret As Variant

    ret = BaanObj.ParseExecFunction("ottstpapihand", "stpapi.insert(" & Chr(34) & BaanSess & Chr(34) & ",1," & Chr(34) & sErrMsg & Chr(34) & ")")

    

    If BaanObj.Error <> 0 Then
            ' Send mail (sometime in the future?)
    
    '   MsgBox ("ret = " & CStr(ret) & Chr(10) & _
    '        "sErrMsg = " & sErrMsg & Chr(10) & _
    '        "BaanObj.Error = " & BaanObj.Error & Chr(10) & _
    '        "BaanObj.ReturnValue = " & BaanObj.returnvalue & Chr(10) & _
    '        "BaanObj.FunctionCall = " & BaanObj.FunctionCall)
            
     
     
            ret = BaanObj.ParseExecFunction("ottstpapihand", "stpapi.recover( " & Chr(34) & BaanSess & Chr(34) & " ," & Chr(34) & sErrMsg & Chr(34) & ")")
            stpapi_End_session (BaanSess)
            Exit Function
            
        Else
        
        SessField = "tdrpl105.orno"
        
        sDll = "stpapi.get.field(" & Chr(34) & BaanSess & Chr(34) & "," & Chr(34) & SessField & Chr(34) & "," & Chr(34) & sReturnString & Chr(34) & ")"
        Call SendtoBAAN("ottstpapihand", sDll)

        sReplenishmentorder = GetValueFromStapiGet(BaanObj.FunctionCall, BaanSess, SessField)
       
        sDll = "stpapi.End.session(" & Chr(34) & BaanSess & Chr(34) & ")"
        Call SendtoBAAN("ottstpapihand", sDll)
    
    End If


'31002
    ReplenishmentHeader = True

End Function

Last edited by mark_h : 12th January 2007 at 14:22. Reason: Added code tags
Reply With Quote
  #11  
Old 12th January 2007, 10:36
pedromrs's Avatar
pedromrs pedromrs is offline
Member
 
Join Date: Oct 2002
Location: Portugal
Posts: 95
pedromrs is on a distinguished road
Baan: IVc4 & SP Chain - DB: SQL Server - OS: Windows NT; Windows 2000
Vandana,

If you look at my first post that code works with the changes suggested by Mark on the second post.
__________________
Regards,
Pedro Sousa
Reply With Quote
  #12  
Old 13th January 2007, 09:32
vandana vandana is offline
Newbie
 
Join Date: May 2006
Posts: 2
vandana is on a distinguished road
Baan: baan 4 - DB: oracle - OS: ibm aix
AFS for replenishment

Dear Pedros,

Can u please send me ur code for rpl order thru AFS

Thanks

Vandana
Reply With Quote
Reply


Currently Active Users Viewing This Thread: 1 (0 members and 1 guests)
 
Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

vB code is On
Smilies are On
[IMG] code is Off
HTML code is Off
Forum Jump

Similar Threads
Thread Thread Starter Forum Replies Last Post
Replenishment orders Anushea Distribution, Transportation & Warehousing 2 1st August 2003 07:10
Calling Maintain Sales Orders for Inserting .. (No source Code) baanlegend Tools Development 1 28th April 2003 17:58
Amendments to Replenishment Orders rabaan Distribution, Transportation & Warehousing 4 24th March 2003 13:05
Replenishment Back Orders dmcgrath Distribution, Transportation & Warehousing 2 19th February 2002 17:50
Process/Remove Delivered Replenishment Orders (tdrpl2126m000) does not work properly baaniac Distribution, Transportation & Warehousing 0 25th January 2002 14:22


All times are GMT +2. The time now is 20:58.


©2001-2018 - Baanboard.com - Baanforums.com