We have been taught that we should use byreference() function to pass pvs from p

We have been taught that we should use byreference() function to pass pvs from process to process. This saves memory. As it relates to a CDT, we are being instructed not to pass a CDT to a sub process as a byreference() function. 1. Why is this? 2. If we do not use byreference() then additional memory will be used in the sub process - this defeats the memory savings.
After reading on the forum it seems that many will create a CDT with many fields in them and then processes using the CDT will only use some of the fields. If you create a CDT specific for a process, wouldn't it make send to pass the CDT to the sub processes as a byreference()?
Keith...

OriginalPostID-83512

OriginalPostID-83512

  Discussion posts and replies are publicly visible

Parents
  • Keith, it is not that you *could* have an issue, you *will* have an issue. None of your existing instances calling subprocesses are going to work and there is no way to back out of it. You would have to delete all existing instances and start new ones. We cannot stress more what the impact of this is.
    As for passing CDTs by value, as long as the new CDT has supported changed (additional fields, removed restrictions) then your subprocesses are going to work fine with old CDTs cast into their new version in subprocess.
Reply
  • Keith, it is not that you *could* have an issue, you *will* have an issue. None of your existing instances calling subprocesses are going to work and there is no way to back out of it. You would have to delete all existing instances and start new ones. We cannot stress more what the impact of this is.
    As for passing CDTs by value, as long as the new CDT has supported changed (additional fields, removed restrictions) then your subprocesses are going to work fine with old CDTs cast into their new version in subprocess.
Children
No Data