|
|
请使用QQ关联注册PLM之家,学习更多关于内容,更多精彩原创视频供你学习!
您需要 登录 才可以下载或查看,没有账号?注册
x
: {1 M9 |( f+ V6 D6 `Teamcenter ITK二次开发源码分享: 创建一个工作流: X( ?1 l$ S; d( \
; o3 n8 z, b- d( {) N$ y! g: w- /*HEAD CREATE_A_PROCESS CCC ITK */
% x4 S( R) ?9 E - #include <stdlib.h>+ |) y- W5 R0 N9 p+ P4 C
- #include <TCcore/aom.h>" v/ y( t" s+ q7 L8 M2 f+ l6 D
- #include <tc/emh.h>. l: D$ N6 n% ]9 X1 w
- #include <epm/epm.h>9 r& {9 {+ ^9 N$ f3 D
- #include <tc/tc.h>' T% n$ i& ?4 O" y3 D$ w9 K: o4 f
- #include <sa/tcfile.h>: k# A. a6 ~* k( D( G% h( U5 Y! {( A
- #include <itk/mem.h>
7 ~; J( i. s6 P0 E
; g. R1 s, G6 c+ X- #define EXIT_FAILURE 1 7 O- m) w4 Z, e; _
- #define ERROR_CHECK(X) (report_error( __FILE__, __LINE__, #X, (X)))
1 T5 o; Q# ]& H7 t# p6 K3 h - static void report_error( char *file, int line, char *function, int return_code)
, S# }/ Y$ ~, }# {6 r: l - {
7 c* A* k# `4 f - if (return_code != ITK_ok): E4 y% l$ ?& l/ d5 S- u r
- {
$ L8 G( J# a9 U! e( m/ ?5 l - char *error_message_string;( z v# W' b8 g7 i9 o2 e
- EMH_get_error_string (NULLTAG, return_code, &error_message_string);
/ H: e2 V1 R/ @, d. T5 Z4 U8 U - printf ("ERROR: %d ERROR MSG: %s.\n", return_code, error_message_string);% {+ C' v. @5 ~3 L" e9 T
- printf ("FUNCTION: %s\nFILE: %s LINE: %d\n", function, file, line);8 k4 M* Z* {* e: _2 b- }& W6 x( y, U
- if(error_message_string) MEM_free(error_message_string);% s3 W1 y K* B4 H' s- R
- printf("\nExiting program!\n");' b4 L1 z$ i( _ g/ x$ q
- exit (EXIT_FAILURE); " S- ]/ C1 c- x1 z& `9 G5 }! r
- }
' E: Z$ m G4 x) ?" l* `6 T- {5 S - }
* P! `- x" _; r1 ^% S0 i - - M4 _7 J, I d* D% j* Q
- #define EXIT_IF_NULL(X) (check_value(#X, (X)))
( F$ j# k- Z) o# s7 J& w* m - static void check_value( char *function, int value )
. a& y- @1 P; @0 c - {: i/ T. ]8 j" P+ [
- if (value == 0)& a' E0 C5 H$ C9 |3 d' ]! S
- {4 e* h8 T0 F5 ~
- printf ("\t%s is NULL\n", function);
- r- A5 T3 w, Z- A4 w3 Y! {: e0 _' K - printf("\nExiting program!\n");
$ a9 c1 z+ H- i9 Q2 z - exit (EXIT_FAILURE);
, q/ F8 n' m0 B8 y8 q) s - }8 b0 ^4 h; ~+ ~. v
- }
9 N9 I* m, g" V: o8 Z& \0 e9 p - 9 t/ @. ^2 k2 ^6 z9 n" `2 _ ?0 ]9 [
- * t+ Y% v* k u1 G/ I# K4 B
- static void do_it(void)
) _; j# r; o' r) M+ [ - {$ T# s& g5 O" q
- int ) W. j1 S( x4 I6 U# i+ s
- attach_types[1] = {1};
8 B4 Y7 r& y7 k" W/ Z+ R - tag_t ' b( j& ]. Z! A2 y: I1 M9 P8 R
- rev = NULLTAG,
- Q3 A4 @8 x5 x! R6 Q+ k1 N$ j7 b7 W1 l - process_template = NULLTAG,
7 h# x0 I0 y( a) s- e. F+ | - process = NULLTAG;) e. | O7 J- n
" b0 O7 x7 T6 I, }; A6 U8 ?% l# E- ERROR_CHECK( ITEM_find_rev("000206", "A", &rev) );6 e! |0 h! u+ \3 y4 F
- EXIT_IF_NULL( rev );- C! i' z8 _8 I6 U
- 1 u0 U, ^9 e/ K: u/ m
- ERROR_CHECK( EPM_find_process_template("oneStepWithStatus", &process_template) ); : W7 ?! ~) G- B+ k
- EXIT_IF_NULL( process_template );
4 [* o% {- `5 D6 P" Y2 K - ' ?" I6 v1 K3 N* L3 k
- $ \" T8 n* \; Z: U/ S
- ERROR_CHECK( EPM_create_process("5421377", "desc", process_template, 1, &rev,
& s! O8 B+ T& O. \2 X; t - attach_types, &process) );
! D" O% d$ \+ a3 T - . M: b( s8 @0 R
- EXIT_IF_NULL( process );+ _2 o6 d5 p: I0 M7 b6 O
- }( ]4 y; s7 C, _2 Q: Q- b9 s2 y
# D6 ?4 @, F/ R. a0 x* `+ R$ t- int ITK_user_main(int argc, char* argv[]). y; H K3 \" i
- {; }4 c0 C1 A$ Z% A. K6 s
- int
9 |) }* ^4 @" N: y5 B - status = 0;
( F. a+ J/ G6 m) ~# b - 4 L+ I. P& `0 W9 [3 L. j' L
- ITK_initialize_text_services( ITK_BATCH_TEXT_MODE );' r5 _4 Z3 c) {8 W2 r
- status = ITK_auto_login();0 [1 j' G s3 E# X% B
- % ]" P) O1 U/ B. I+ G! I4 Y
- if ( (status != ITK_ok)) printf("\nLogin Failed!\n\n");
! B# \( ]% ^9 l. `* H# D& S - else
9 c; [/ p& h2 x7 G7 H |" q0 s( N+ a - {
$ c6 x! [* f8 Q& r: I$ W- L - printf("\nLogin successful!\n\n");. ~/ ^5 i. A( j" V
- ITK_set_journalling(TRUE);+ U0 V( f9 I$ \: q
- do_it();
7 A7 h6 u) Z5 ?% x* ~ - }
- [. f e: p0 ~4 T; x - ITK_exit_module(TRUE);
9 ?8 Y9 e# k. D @7 L - return status;2 p2 e7 q' ?$ k: o6 {/ C: u
- }
复制代码
5 b. `6 W3 ~. B+ S Z g: g2 Q( j' ~3 ~
! v4 x \8 C' b* x
|
|