code: protected Map<String,Object> buildParameters(XmlObject msgdoc, Map<String,String> metaInfo, Process processVO) {
          Map<String,Object> params = null;
          Variable requestVO = processVO.getVariable("request");
          if (requestVO != null && requestVO.getVariableCategory() == 1) {
              params = new HashMap<String,Object>();
  
              String vartype = requestVO.getType();
              try {
                  com.centurylink.mdw.variable.VariableTranslator translator = VariableTranslator.getTranslator(getPackage(), vartype);
                  if (translator instanceof DocumentReferenceTranslator) {
                      DocumentReferenceTranslator docTranslator = (DocumentReferenceTranslator)translator;;
                      Object document = docTranslator.realToObject(msgdoc.xmlText());
                      DocumentReference docRef = createDocument(vartype, document,  OwnerType.DOCUMENT, new Long(metaInfo.get(Listener.METAINFO_DOCUMENT_ID)), new Long(0), null, null);
                      params.put("request", docRef.toString());
                  }
                  else {
                      params.put("request", msgdoc.xmlText());
                  }
  
              } catch (Exception ex) {
                  logger.severeException(ex.getMessage(), ex);
                  return null;
              }
          }
          return params;
      }
docs: This method is invoked by handleEventMessage() to build parameters (input variables)
  when starting the process. The default implementation returns null, i.e. passing
  no parameters at all. You can override this method to build parameters.
  If the external message contains large data such as service orders, you
  should override this method to create documents, and pass the document references
  to the processes.
  @param msgdoc
  @param metaInfo
  @return