|
|
请使用QQ关联注册PLM之家,学习更多关于内容,更多精彩原创视频供你学习!
您需要 登录 才可以下载或查看,没有账号?注册
x
7 s6 c. D a1 Y6 N: E5 CTeamcenter ITK二次开发源码分享: 创建一个工作流/ j) h) h; M' Y$ [5 v2 c$ L+ E
a) g4 p' P, T2 l- /*HEAD CREATE_A_PROCESS CCC ITK */7 S' k l* _$ o
- #include <stdlib.h>
, t$ o! m; G8 C' m - #include <TCcore/aom.h>, h' N7 B: _, Q: t- _! l' Z
- #include <tc/emh.h>
+ w+ l" c/ Z$ K7 a5 @3 Q - #include <epm/epm.h>
/ K; }4 M4 P' v# F1 t8 k' A5 i - #include <tc/tc.h>, G3 d- h; l; ]# \. W, _# I$ c
- #include <sa/tcfile.h>
3 b: J0 h: z# }- P: h6 h3 w - #include <itk/mem.h>) [2 f2 v: p1 _* y6 H, \
9 f. \- ~+ Z& t; o, `4 h5 f- #define EXIT_FAILURE 1
& |# C0 p; S; Z( J! F5 i* Y/ | - #define ERROR_CHECK(X) (report_error( __FILE__, __LINE__, #X, (X)))
" J& ?. F: O/ K h8 a( A+ r - static void report_error( char *file, int line, char *function, int return_code)1 F6 p3 Y' c7 v7 o9 j& p9 L
- {
! ?. c2 Q" x" t) t2 H( A h& m* N - if (return_code != ITK_ok)
( U- k; O5 g4 c - {' W8 n6 I8 u D( T2 [
- char *error_message_string;5 H }7 r) F$ a' ~6 `: D
- EMH_get_error_string (NULLTAG, return_code, &error_message_string);
! B2 Y; ^5 f7 |! }$ f9 A) L - printf ("ERROR: %d ERROR MSG: %s.\n", return_code, error_message_string);" p' l: W t9 R- T
- printf ("FUNCTION: %s\nFILE: %s LINE: %d\n", function, file, line);- {, i5 j1 [( K8 u$ P
- if(error_message_string) MEM_free(error_message_string);# h0 s2 \+ r4 Q& w0 ?3 _
- printf("\nExiting program!\n");
1 \* q& A' r# L8 t' v - exit (EXIT_FAILURE);
4 w$ c' r( |3 y9 k" z4 T, C/ ` - } W9 u( N1 X& L ^# z
- }
' z( p( t1 X& a! S3 H0 ? - $ d! s3 y E2 t9 e$ ?
- #define EXIT_IF_NULL(X) (check_value(#X, (X))) G* C% X5 X& R
- static void check_value( char *function, int value )6 T( t3 j$ ]2 ~" |. U
- {: p) w. t9 s5 h: B6 k3 j
- if (value == 0)
( j" k9 ? b7 R, H* G - {
! \+ N4 l, F+ I: t9 x3 D - printf ("\t%s is NULL\n", function);1 X; U, p2 @, _% O) e
- printf("\nExiting program!\n");3 O* p) |1 x. F- Z0 R, m
- exit (EXIT_FAILURE);
" V2 Q" E$ p0 _4 S7 I! t; R. O - }
' |) j3 t8 P, p A - }% w. U7 m1 Z4 p, `! \! F
( y/ J9 J0 h! _7 j$ L
" ]. \# C% |/ m7 ~9 c; H" i' T- static void do_it(void)7 D; x; ~ C. {( y' E( o8 r
- {: r" I. k2 z& L: q
- int 0 {7 B& [! g* o% Q- I9 }9 G; j
- attach_types[1] = {1};8 Y& { I% {3 l. @% K& y
- tag_t : E! E4 p, W) v d9 m3 s, s
- rev = NULLTAG, 7 f" Z- U4 Z0 c8 ?- L
- process_template = NULLTAG,
: A9 U, ?% G# z. P# a& p - process = NULLTAG;/ ?8 [1 k) x, V: [/ }( ^5 }+ Q( z% }
- # p2 {, d1 }) f4 [ L* D% E& {
- ERROR_CHECK( ITEM_find_rev("000206", "A", &rev) );
: P) t+ f$ t: Q/ Q( F - EXIT_IF_NULL( rev );: m' J2 J1 {- \; w
$ g7 [/ h" T: f+ Y. @- ERROR_CHECK( EPM_find_process_template("oneStepWithStatus", &process_template) ); , i6 F+ h/ I `4 y3 W# f7 H" g" u
- EXIT_IF_NULL( process_template );$ R7 t$ F- Q. y3 j) D& L7 a9 `
- 8 a9 b) i/ ^ Y- _: h% h
: }6 Q+ G, Q& `" M) t' a* J- ERROR_CHECK( EPM_create_process("5421377", "desc", process_template, 1, &rev, 8 I: e' }* K' K
- attach_types, &process) );
+ k- P* d/ K( {6 h: g. Q3 N
6 ?% l8 T% h# Y. k- EXIT_IF_NULL( process );7 J2 m5 U/ O$ [9 z( {; C0 H
- }/ S5 o# F, Y: U* [
, _6 B- h7 k1 z2 q9 }- int ITK_user_main(int argc, char* argv[])
e, N+ L: K" N - {
" a, j' a% P. E' v: `4 Y6 u; O - int
8 b2 {: D2 i& l8 H& b- Q - status = 0; . d8 }* {0 `8 E' K
-
. n4 x- W# S4 |9 o! [5 y - ITK_initialize_text_services( ITK_BATCH_TEXT_MODE );
6 d& L$ S* z2 H; H! | - status = ITK_auto_login();$ B r% ~1 F! G. n/ L I4 V6 G
- + @) i3 A" T+ x* u5 \8 b
- if ( (status != ITK_ok)) printf("\nLogin Failed!\n\n");
' Y6 ?) W: D+ z$ k - else
" b/ G" V6 \3 k0 N& Y - {
}" s; v7 y9 L6 t* [0 Z9 b4 v - printf("\nLogin successful!\n\n");& r9 R3 d* C' E: h' t
- ITK_set_journalling(TRUE);
4 S- l, W3 P6 ^ [% _, T I - do_it();
$ w' L! q' c3 W7 {9 { i+ L - }% G8 l) b4 V5 x: W# h4 H
- ITK_exit_module(TRUE);+ C- n9 g: P2 |# ]9 N# Q B. I o
- return status;
4 `- d& X7 u; s0 b - }
复制代码
# L" b2 b* z% j% ^+ l
# M7 r7 M U- [6 {' n8 E: P; j5 M5 c( d3 \( b4 |( `
|
|